Développer Recherche Afficher pour utiliser toute la barre d'action (cacher d'autres choses)
J'ai un SearchView
à l'intérieur de mon ActionBar
et je veux utiliser l'ensemble de la ActionBar
lorsque l'icône de recherche est pressé, mais je ne peux utiliser le ActionBar
espace libre
par exemple.: http://imgur.com/wnjMfWO
mon menu code:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context="br.com.moderna.houaiss.activity.SearchActivity" >
<item
android:id="@+id/search"
android:actionViewClass="android.widget.SearchView"
android:icon="@drawable/ic_search_white_48dp"
android:showAsAction="collapseActionView|always"
android:title="@string/search"/>
<item
android:id="@+id/backWardHistory"
android:icon="@drawable/ic_arrow_back_white_48dp"
android:showAsAction="always"
android:title="@string/back_history"/>
<item
android:id="@+id/forWardHistory"
android:icon="@drawable/ic_arrow_forward_white_48dp"
android:showAsAction="always"
android:title="@string/forward_history"/>
<item
android:id="@+id/action_home"
android:orderInCategory="100"
android:showAsAction="never"
android:title="@string/action_home"/>
<item
android:id="@+id/action_about"
android:orderInCategory="100"
android:showAsAction="never"
android:title="@string/action_about"/>
<item
android:id="@+id/action_configuration"
android:orderInCategory="100"
android:showAsAction="never"
android:title="@string/action_configuration"/>
<item
android:id="@+id/action_logout"
android:orderInCategory="100"
android:showAsAction="never"
android:title="@string/action_logout"/>
J'avais essayé android:showAsAction="ifRoom"
mais j'en ai besoin pour être toujours sur mon ActionBar
et non pas à l'intérieur de mon menu.
MODIFIER ------
Grâce à @Simas,
J'ai utilisé setOnActionExpandListener méthode pour obtenir cet effet
final MenuItem searchItem = menu.findItem(R.id.search);
searchItem.setOnActionExpandListener(new OnActionExpandListener() {
@Override
public boolean onMenuItemActionExpand(final MenuItem item) {
SearchActivity.this.setItemsVisibility(menu, searchItem, false);
return true;
}
@Override
public boolean onMenuItemActionCollapse(final MenuItem item) {
SearchActivity.this.setItemsVisibility(menu, searchItem, true);
return true;
}
});
private void setItemsVisibility(final Menu menu, final MenuItem exception,
final boolean visible) {
for (int i = 0; i < menu.size(); ++i) {
MenuItem item = menu.getItem(i);
if (item != exception)
item.setVisible(visible);
}
}
source d'informationauteur user3672263
Vous devez vous connecter pour publier un commentaire.
Ainsi vous pouvez imiter que vous-même en se cachant de tous les autres éléments lorsque le
SearchView
est élargi:Ce serait une réponse tardive mais vous pouvez ajouter cet attribut pour votre élément de menu et le travail est fait pour vous.
Mot-clé ici étant le collapseActionView.
J'ai essayé cette ligne de code pour faire la searchview étendre sur toute la largeur disponible. Cela fonctionne quand il y a d'autres éléments affichés dans l'actionbar.