[Android widget de recherche]Comment cacher le bouton de fermeture de recherche par défaut?
J'ai mis en place un android SearchView
dans ActionBar
. Lorsque le SearchView
obtient le focus, le bouton fermer [x] à la droite affiche. J'ai pris un coup d'oeil à d'autres android applications natives, comme les Contacts et Gmail. Le bouton de fermeture n'est pas affiché lorsque le SearchView
obtient le focus.
Comment configurer mon SearchView
se comporter comme ça?
OriginalL'auteur sunny | 2014-09-19
Vous devez vous connecter pour publier un commentaire.
Réglage
searchView.setIconifiedByDefault(false)
va désactiver l'effondrement de l'affichage de la recherche et également supprimer le bouton fermer.OriginalL'auteur Nuno Marques
J'ai connu le même problème avec
android.support.v7.widget.SearchView
et trouvé une solution. Tout d'abord, dansonCreateOptionsMenu
, vous pouvez obtenir une référence à la SearchView ainsi que son bouton de fermeture:Maintenant, vous pouvez essayer de modifier le bouton. J'ai d'abord essayé d'utiliser
setVisibility(View.GONE)
pour masquer le bouton de fermeture, mais cela ne fonctionne pas, parce que le SearchView réinitialise la visibilité de son bouton fermer lorsque l'utilisateur interagit avec le SearchView. Donc, ma solution a été d'utiliser un transparent drawable et de désactiver le clic sur le bouton fermer:Cet article m'a aidé ainsi:
http://novoda.com/blog/styling-actionbar-searchview
Cependant, c'est assez hacky pour être honnête. Il serait plus propre de saisir le SearchView source de https://android.googlesource.com/platform/frameworks/support.git/+/master/v7/appcompat/src/android/support/v7/widget/SearchView.java et de créer votre propre version de SearchView qui ne l'afficher/masquer le bouton fermer.
Mise à jour:
Google vient d'annoncer AppCompat v21, qui a le style des améliorations pour la SearchView widget:
http://android-developers.blogspot.com/2014/10/appcompat-v21-material-design-for-pre.html
mSearchCloseButton.setVisibility(View.GONE)
mais il ne fonctionne pas. Ensuite, j'ai essayé de mettre un drawable qui est transparent comme vous l'avez fait et eu mon objectif.OriginalL'auteur Fabian Frank
Vous pouvez obtenir un lien vers le bouton à partir d'une SearchView objet (AppCompat v23.2.1):
Ensuite, vous pouvez affecter à un auditeur de la SearchView modifications de texte (SearchView également de modifier la visibilité du bouton, mais l'auditeur sera exécuté par la suite et remplacent celles de modifications):
Et enfin, un écouteur pour masquer l'icône lorsque SearchView est élargi à partir icône de l'état:
OriginalL'auteur Roman Tikhonov
Vous pouvez également l'utiliser pour masquer le fermer le bouton
OriginalL'auteur Nicolas
Affichage pour les futurs visiteurs. Les réponses précédentes sont vieux et pas facile. Tout ce que vous avez à faire est de régler null à
app:closeIcon
de cette façonapp:closeIcon="@null"
OriginalL'auteur Taseer Ahmad