Buscar ver cerrar icono aparecer deshabilitado en lugar de blanco

Cada vez que escriba en mi búsqueda, el botón de cierre (X) parece estar deshabilitado por alguna razón en lugar de aparecer en el color blanco. ¿Cómo se puede resolver este error para que aparezca blanco?

Introduzca aquí la descripción de la imagen

@Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { inflater.inflate(R.menu.menu_search_list, menu); MenuItem item = menu.findItem(R.id.action_search); SearchView searchView = (SearchView) MenuItemCompat.getActionView(item); searchView.setOnQueryTextListener(this); searchView.setQueryHint(getResources().getString(R.string.station_search_hint)); } 

Menu_search_list.xml

 <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" > <item android:id="@+id/action_search" android:icon="@drawable/ic_action_search_light" android:title="@string/action_search" android:orderInCategory="100" app:showAsAction="always" app:actionViewClass="android.support.v7.widget.SearchView"/> </menu> 

Tu código parece estar bien. Pruebe el siguiente código:

 final MenuItem search = menu.findItem(R.id.action_search); if (search != null) { SearchView searchView = (SearchView) MenuItemCompat.getActionView(search); search.expandActionView(); searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { @Override public boolean onQueryTextSubmit(String query) { return false; } @Override public boolean onQueryTextChange(String newText) { // Your Logic return false; } }); MenuItemCompat.setOnActionExpandListener(search, new MenuItemCompat.OnActionExpandListener() { @Override public boolean onMenuItemActionExpand(MenuItem item) { return false; } @Override public boolean onMenuItemActionCollapse(MenuItem item) { finish(); return true; } }); 

Un nuevo tweak: Pruebe el mismo código anterior en onPrepareOptionsMenu con las siguientes líneas adicionales en la parte superior

 menu.clear(); getMenuInflater().inflate(R.menu.menu_search_list, menu); ... // Above code 
 ImageView close_button = (ImageView)searchView.findViewById(R.id.close_button); close_button .setBackgroundResource(R.drawable.your_icon); 

O (utilizando Selector)

  ImageView close_button =(ImageView)searchView.findViewById(R.id.close_button); close_button .setBackgroundResource(R.drawable.your_image_selector); 

Creo que copiar y pegar el siguiente código:

 View close = searchView.findViewById(R.id.search_close_btn); close.setBackgroundResource(R.drawable.desired_icon); 

No es una buena solución. Por favor, use estilos para esto.
Primera solución. Añadir icono de cierre como predeterminado android:searchViewCloseIcon en su tema principal:

 <style name="Theme" parent="AppBaseTheme"> <item name="android:searchViewCloseIcon">@drawable/ic_your_search_close_icon</item> </style> 

Segunda solución (Mejor). Estilo de la barra de acción

 <style name="CustomActionBarTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar"> <item name="android:actionBarStyle">@style/MyActionBar</item> <!-- Support library compatibility --> <item name="actionBarStyle">@style/MyActionBar</item> </style> <!-- ActionBar styles --> <style name="MyActionBar" parent="@style/Theme.AppCompat.Light.DarkActionBar"> <item name="searchViewCloseIcon">@android:drawable/ic_your_search_close_icon</item> </style> 

Otros atributos de SearchView (del código fuente appcompat-v7 ( LINK ACTUALIZADO )):

 <attr name="searchResultListItemHeight" format="dimension" /> <attr name="searchViewAutoCompleteTextView" format="reference" /> <attr name="searchViewCloseIcon" format="reference" /> <attr name="searchViewEditQuery" format="reference" /> <attr name="searchViewEditQueryBackground" format="reference" /> <attr name="searchViewGoIcon" format="reference" /> <attr name="searchViewSearchIcon" format="reference" /> <attr name="searchViewTextField" format="reference" /> <attr name="searchViewTextFieldRight" format="reference" /> <attr name="searchViewVoiceIcon" format="reference" /> 

Uso de Exaple:

 <item name="searchDropdownBackground">@android:drawable/spinner_dropdown_background</item> <item name="searchViewTextField">@drawable/textfield_searchview_holo_dark</item> <item name="searchViewTextFieldRight">@drawable/textfield_searchview_right_holo_dark</item> <item name="searchViewCloseIcon">@android:drawable/ic_clear</item> <item name="searchViewSearchIcon">@android:drawable/ic_search</item> <item name="searchViewGoIcon">@android:drawable/ic_go</item> <item name="searchViewVoiceIcon">@android:drawable/ic_voice_search</item> <item name="searchViewEditQuery">@android:drawable/ic_commit_search_api_holo_dark</item> <item name="searchViewEditQueryBackground">?attr/selectableItemBackground</item> <item name="searchDialogTheme">@style/Theme.SearchBar</item> 

Más sobre el estilo:
Android – Theming ActionBar y el SearchView en su interior por Andreas Nilsson
Diseño de la barra de acciones mediante la documentación oficial de Android

  • Este campo de texto no especifica un inputType o una pista
  • Cómo diseñar o diseñar correctamente un cajón de navegación de Android
  • cómo hacer que el diseño haga clic de forma programable
  • Equivalencia de setTag (clave, valor) en XML
  • ¿Cómo infulo una vista personalizada en XML?
  • ¿Volver a calcular ScrollView en diferentes vistas de ViewFlipper?
  • ¿Permitir sólo 2 orientaciones de pantalla en Android?
  • Declaración de un elemento personalizado de la interfaz de usuario de Android con XML
  • Si ScrollView sólo admite a un hijo directo, ¿cómo se supone que puedo hacer que un diseño completo se pueda desplazar?
  • Extras en el intento de correo electrónico - Preferencias XML
  • ¿Cómo utilizar mi SurfaceView con main.xml en Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.