Existe este widget para ActionBar que se llama 'SearchView'. Cuando no está en uso, se ve así:
Y cuando está en uso, se ve así:
Quiero (programáticamente por supuesto) abrir la vista de búsqueda (hacerla "en uso").
Probé varias funciones como:
SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();
searchView.setOnQueryTextListener(this);
searchView.performClick();
searchView.requestFocus();
Pero ninguno de esos funcionó ...
SearchView en el XML:
<item android:id="@+id/menu_search"
android:title="Search"
android:icon="@drawable/ic_action_search"
android:showAsAction="ifRoom|collapseActionView"
android:actionViewClass="android.widget.SearchView" />
java
android
android-actionbar
Eli Revah
fuente
fuente
showAsAction="always"
hace que el icono de búsqueda permanezca en la barra de acciones cuando se expande, lo que no se parece a la apariencia cuando se enfoca la búsqueda manualmente.Intente llamar
expandActionView()
a MenuItem, no a onActionViewExpanded () en ActionView.Esto funciona para mi.
fuente
showAsAction: always
que causa algunos problemas.Si desea utilizar la biblioteca de soporte solo cuando sea necesario, haga esto
si no, simplemente haz esto
fuente
Se que esto es tarde pero
Intente llamar a expandActionView () para abrirlo y collapseActionView () para cerrarlo. Puede llamar a requestFocus () en la Vista de acción real a través de getActionView () para dar el enfoque de la vista de búsqueda :)
fuente
Ampliando la respuesta de Matthias Robberts:
Quería un fragmento de lista para mantener su valor de búsqueda y configurarlo después de que el usuario regrese de otro fragmento.
y para el menú que guardo
always|collapseActionView
, de lo contrario, permanece abierto cuando el usuario elimina el texto.fuente
Para abrir un
searchView
mantenimientoclose_button
al final, use esto enonCreate
: -fuente