No se pudo cambiar actionbarsherlock SearchView icon

Cuando uso la siguiente configuración:

<item android:id="@+id/menu_item_search" android:actionViewClass="com.actionbarsherlock.widget.SearchView" android:icon="@android:drawable/ic_menu_search" android:showAsAction="ifRoom" android:title="@string/action_search"/> 

ActionBarSherlock SearchView no reacciona en el android proporcionado: icon

Pero en caso de

 android:showAsAction="ifRoom|collapseActionView" 

El icono se cambia correctamente, pero el botón de cierre dentro de la vista de búsqueda está ausente.

¿Cómo cambiar el icono de búsqueda y mostrar el botón Cerrar en la esquina derecha de la vista de búsqueda?

Este es mi AppTheme:

 <style name="AppTheme" parent="AppBaseTheme"> <item name="android:windowBackground">@color/background_window</item> <item name="android:actionBarStyle">@style/ActionBarStyle</item> <item name="homeAsUpIndicator">@drawable/new_indicator</item> <item name="android:homeAsUpIndicator">@drawable/new_indicator</item> <!-- ActionBar (SearchView) fix --> <item name="textColorPrimary">@color/abs__primary_text_holo_light</item> <item name="textColorPrimaryInverse">@color/abs__primary_text_holo_dark</item> <item name="searchDropdownBackground">@drawable/abs__search_dropdown_dark</item> <item name="searchViewTextField">@drawable/abs__textfield_searchview_holo_dark</item> <item name="searchViewTextFieldRight">@drawable/abs__textfield_searchview_right_holo_dark</item> <item name="searchViewCloseIcon">@drawable/abs__ic_clear</item> <item name="searchViewSearchIcon">@drawable/abs__ic_voice_search</item> <item name="searchViewGoIcon">@drawable/abs__ic_go</item> <item name="searchViewVoiceIcon">@drawable/abs__ic_voice_search</item> <item name="searchAutoCompleteTextView">@style/Widget.Sherlock.SearchAutoCompleteTextView.DarkActionBar</item> </style> <style name="Widget.Sherlock.SearchAutoCompleteTextView.DarkActionBar"> <item name="android:textColor">?attr/textColorPrimaryInverse</item> </style> 

Aplicación del manifiesto:

 <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> 

Menú de la barra de acciones:

 <item android:id="@+id/menu_item_search" android:icon="@drawable/abs__ic_clear" android:actionViewClass="com.actionbarsherlock.widget.SearchView" android:showAsAction="ifRoom" android:title="@string/action_search"/> <item android:id="@+id/menu_item_contact" android:icon="@drawable/ic_action_user" android:showAsAction="ifRoom" android:title="@string/action_contact"/> 

Configuración del menú SearchView:

 SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); SearchView searchView = (SearchView) menu.findItem(R.id.menu_item_search).getActionView(); if (null != searchView) { searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); searchView.setIconifiedByDefault(true); } SearchView.OnQueryTextListener queryTextListener = new SearchView.OnQueryTextListener() { public boolean onQueryTextChange(String newText) { // this is your adapter that will be filtered // adapter.getFilter().filter(newText); return true; } public boolean onQueryTextSubmit(String query) { // this is your adapter that will be filtered // adapter.getFilter().filter(query); return true; } }; searchView.setOnQueryTextListener(queryTextListener); 

Puede lograr esto estableciendo un atributo para su tema de actividad. En tu styles.xml agrega las siguientes líneas y asegúrate de aplicar MyTheme o lo que sea que quieras llamarlo a tu aplicación oa la actividad donde vive tu búsqueda. También he añadido el atributo "searchAutoCompleteTextView" que le permitirá personalizar el color del texto y tal si lo desea.

  <style name="MyTheme" parent="Theme.Sherlock"> <item name="searchViewCloseIcon">@drawable/YOUR_CLOSE_ICON</item> <item name="searchViewSearchIcon">@drawable/YOUR_SEARCH_ICON</item> <item name="searchAutoCompleteTextView">@style/searchTextView</item> </style> <style name="searchTextView" parent="Widget.Sherlock.SearchAutoCompleteTextView"> <item name="android:textColor">@android:color/white</item> <item name="android:textColorHint">@android:color/black</item> </style> 
  • Cambiar a ActionBarCompat, pero tienen errores de generación relacionados con el tema
  • Cambiar el color de texto de ActionBar
  • Cómo eliminar YourSelf de la lista ShareActionProvider
  • Fragmento dentro de la pestaña ¿Actividad perdiendo todos los datos al girar?
  • Android (ActionBarSherlock) ¿Hay alguna manera de mantener la misma altura de ActionBar tanto en el retrato y el paisaje?
  • Resolver los errores de migración de Holoeverywhere 1.4
  • FindFragmentByTag - buscando fragmento en FragmentTabHost - always null
  • ¿Cómo mostrar la vista personalizada en ActionBar?
  • ActionBar cambia el color del botón menuitem cuando se presiona
  • Utilizar ActionBarSherlock con el nuevo SupportMapFragment
  • ActionBarSherlock spinner no seleccionable en ActionBar - Tema relacionado
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.