Establecer el color del botón Clear de SearchView
Estoy creando un searchview en la barra de herramientas usando onCreateOptionsMenu
, pero no puedo obtener el botón claro de X
para inicialmente ser blanco. Se vuelve blanco al empezar a escribir letras. También permanece blanco después del despeje.
- Formatear texto para sugerencias de búsqueda personalizadas proporcionadas en un cursor de un proveedor de contenido
- Android: ¿Cómo obtener sugerencias de búsqueda de forma asíncrona desde la Web?
- Cómo eliminar la flecha HomeAsUpButton de ActionBar Sherlock cuando se establece un ActionView para la búsqueda?
- Sugerencias personalizadas en el Widget de búsqueda (Android ICS)
- Personalizar seeekbar enpoints
@Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater menuInflater = getMenuInflater(); menuInflater.inflate(R.menu.responsible_menu, menu); SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView(); searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); //TODO: May not be needed? searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { @Override public boolean onQueryTextSubmit(String query) { mAdapter.updateUIWithFilter(query); return false; } @Override public boolean onQueryTextChange(String newText) { mAdapter.updateUIWithFilter(newText); return false; } }); // Does not work! Still not white. ImageView searchClose = (ImageView) searchView.findViewById(android.support.v7.appcompat.R.id.search_close_btn); searchClose.setColorFilter(Color.argb(255, 255, 255, 255)); searchClose.setAlpha(255); return true; }
Responsable_menu.xml:
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:appcompat="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/tools"> <item android:id="@+id/menu_search" android:title="@string/search" appcompat:actionViewClass="android.support.v7.widget.SearchView" appcompat:showAsAction="always"/> </menu>
- ¿Cómo alinear el icono de la lupa en SearchView con precisión?
- Android Cómo ver doc de sdcard en gallary?
- Cómo hacer que Google Play Store App como el menú de acciones de búsqueda y el diseño del diálogo de búsqueda
- En Android cómo cambiar el color de una letra / carácter en particular que se está buscando dentro de la lista
- Android Market, resultados de la búsqueda posición Misterio
- ¿Cómo puedo devolver un registro basado sólo en una coincidencia parcial de ese registro?
- ¿Puedes buscar en Google Play con Intent?
- El widget de búsqueda no está funcionando en el release apk
Encontré una solución. Sin embargo, interesado en mejores.
Descargó la imagen "botón claro" de https://www.google.com/design/icons/#ic_clear en blanco 24pt y agregó este código al final de onCreateOptionsMenu
// Does help! ImageView searchClose = (ImageView) searchView.findViewById(android.support.v7.appcompat.R.id.search_close_btn); searchClose.setImageResource(R.drawable.ic_clear_white_24dp);
Puede usar su propio icono personalizado en lugar del icono de cancelación predeterminado de searchview.
He utilizado por debajo del código que funciona bien, Espero que funcione para usted.
private void setCloseSearchIcon(SearchView searchView) { try { Field searchField = SearchView.class.getDeclaredField("mCloseButton"); searchField.setAccessible(true); ImageView closeBtn = (ImageView) searchField.get(searchView); closeBtn.setImageResource(R.drawable.ic_close); } catch (NoSuchFieldException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } }
Esto funcionará por encima de api nivel 14.
También puede configurarlo desde XML. Estoy utilizando la biblioteca de soporte 24.2.1 y una actividad con un tema cuyo padre es "Theme.AppCompat.Light" y un android.support.v7.widget.SearchView en el ActionBar.
Puede establecer un actionBarWidgetTheme en su tema de actividad de la siguiente manera:
<style name="ActivityTheme" parent="Theme.AppCompat.Light"> <item name="actionBarWidgetTheme">@style/MyActionBarWidgetTheme</item> </style>
Y luego definir MyActionBarWidgetTheme y establecer los colores que desea allí:
<style name="MyActionBarWidgetTheme"> <item name="android:textColorSecondary">@android:color/white</item> </style>
-
Android: textColorSecondary se aplica al icono de cierre
-
Android: textColorPrimary se aplica al texto que ingresa
-
ColorControlActivated se aplica al cursor
-
Android: textColorHint se aplica al texto de la pista
- SessionState es CLOSED_LOGIN_FAILED en el inicio de sesión nativo de FB
- FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS excluye toda la aplicación, no sólo la Actividad