Style Android SearchView Desplegable popup
Me gustaría saber cómo el estilo de la lista desplegable popup de la Android 4.0 SearchView
?
- ¿Cualquier forma más rápida de volcar la jerarquía de la interfaz de usuario?
- Android Night Mode sin CarModeEnabled
- android - UI como deslizamiento hacia abajo barra de notificación
- Problema de actualización de Android ICS ListView
- Fragmento no se elimina visualmente
Estoy usando el Theme.Sherlock.Light.DarkActionBar
, pero no sé cómo el estilo de la búsqueda desplegable en un fondo blanco y un texto negro?
- Creación de un botón de retroceso personalizado en android
- Android menú desplegable (sin girador!)
- Errores de NullPointer de TextSwitcher
- Establecer vínculo en Java-Android
- ViewPager no desliza con FragmentPagerAdapter
- Ver contenido a continuación ExpandableListView
- Sugerencias para el formulario de entrada de datos en android
- Android: ¿Hay alguna manera de cambiar la altura del botón de conmutación?
Por alguna razón el uso del tema "searchAutoCompleteTextView" no funcionaba para mí tampoco. Así que lo resolví con el siguiente código al configurar mi SearchView:
Nota: Todo esto se hace con la biblioteca de soporte de Android v7 / AppCompat
public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.search_menu, menu); MenuItem searchItem = menu.findItem(R.id.action_search); SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem); // Theme the SearchView's AutoCompleteTextView drop down. For some reason this wasn't working in styles.xml SearchAutoComplete autoCompleteTextView = (SearchAutoComplete) searchView.findViewById(R.id.search_src_text); if (autoCompleteTextView != null) { autoCompleteTextView.setDropDownBackgroundResource(R.drawable.abc_search_dropdown_light); } }
Hay dos recursos desplegables de búsqueda proporcionados por la biblioteca de compatibilidad, son
- R.drawable.abc_search_dropdown_light (fondo claro)
- R.drawable.abc_search_dropdown_dark (fondo oscuro)
Hay varios pasos para hacerlo
En primer lugar, es necesario crear una disposición personalizada con cuatro estados, puede hacer referencia a {ABSLibrary} /res/drawable/abs__list_selector_holo_dark.xml. Será algo como esto:
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_window_focused="false" android:drawable="@android:color/transparent" /> <!-- Even though these two point to the same resource, have two states so the drawable will invalidate itself when coming out of pressed state. --> <item android:state_focused="true" android:state_enabled="false" android:state_pressed="true" android:drawable="@drawable/abs__list_selector_disabled_holo_dark" /> <item android:state_focused="true" android:state_enabled="false" android:drawable="@drawable/abs__list_selector_disabled_holo_dark" /> <item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/abs__list_selector_background_transition_holo_dark" /> <item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/abs__list_selector_background_transition_holo_dark" /> <item android:state_focused="true" android:drawable="@drawable/abs__list_focused_holo" />
Guarde la costumbre dibujable arriba (formato .xml) en su propio proyecto res / drawable. Edite los estilos en consecuencia haciendo referencia a la muestra anterior. Observe por favor que el estilo pudo ser anidado profundamente, apenas sea paciencia que mira abajo del árbol.
A continuación, cree (o ponga en el tema personalizado existente) un tema personalizado con lo siguiente, debe guardarse como res / values / styles.xml:
<style name="Theme.MyCustomTheme" parent="Theme.Sherlock.Light.DarkActionBar"> <item name="searchAutoCompleteTextView">@style/MySearchAutoCompleteTextView</item></style> <style name="MySearchAutoCompleteTextView" parent="Sherlock.__Widget.SearchAutoCompleteTextView"> <item name="android:dropDownSelector">@drawable/myCustomDrawable_DropDown</item> <item name="android:popupBackground">@drawable/myCustomDrawable_popupBackground</item></style>
Tenga en cuenta que el "myCustomDrawable_DropDown" y "myCustomDrawable_popupBackground" tiene que ser el nombre del dibujo personalizado que acaba de crear.
Sólo tienes que saber que el "android: dropDownSelector" y / o "android: popupBackground" son los que son responsables de la tematización de la ventana emergente de autocompletar.
¡Finalmente , aplique el tema en su Manifiesto!
<application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/Theme.MyCustomTheme" > ...
- Tablayout de la biblioteca de soporte de diseño de Android mediante el diseño de pestañas personalizadas, pero el diseño que envuelve las pestañas
- Proceso de revisión de Google Play Android