Il y a ce widget pour l'ActionBar qui s'appelle «SearchView». Lorsqu'il n'est pas utilisé, cela ressemble à ceci:
Et quand il est utilisé, cela ressemble à ceci:
Je veux (par programme bien sûr) ouvrir la vue de recherche (la rendre "en cours d'utilisation").
J'ai essayé plusieurs fonctions telles que:
SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();
searchView.setOnQueryTextListener(this);
searchView.performClick();
searchView.requestFocus();
Mais aucun de ceux-ci n'a fonctionné ...
Le SearchView dans le 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
la source
la source
showAsAction="always"
fait que l'icône de recherche reste sur la barre d'action lorsqu'elle est développée, ce qui ne ressemble pas à l'apparence lorsque vous concentrez la recherche manuellement.Essayez d'appeler
expandActionView()
MenuItem, pas onActionViewExpanded () sur ActionView.Ça marche pour moi.
la source
showAsAction: always
ce qui pose certains problèmes.Si vous souhaitez utiliser la bibliothèque de support uniquement lorsque cela est nécessaire, procédez comme suit
sinon faites simplement ceci
la source
Je sais que c'est tard mais
Essayez d'appeler expandActionView () pour l'ouvrir et collapseActionView () pour le fermer. Vous pouvez appeler requestFocus () sur la vue Action réelle via getActionView () pour donner le focus à la vue de recherche :)
la source
Élargir la réponse de Matthias Robberts:
Je voulais qu'un fragment de liste conserve sa valeur de recherche et le définisse après le retour de l'utilisateur d'un autre fragment.
et pour le menu que je garde
always|collapseActionView
, sinon il reste ouvert lorsque l'utilisateur supprime le texte.la source
Pour ouvrir un
searchView
garder leclose_button
à la fin, utilisez ceci dansonCreate
: -la source