Je veux cacher certains éléments du menu lorsque la vue de la recherche se développe donc c'est le code je:Android SearchView ne fonctionne pas lorsque vous appelez invalidateOptionsMenu()
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
menu.findItem(R.id.action_refresh).setVisible(!isSearchOpen)
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
MenuItem searchMenuItem = menu.findItem(R.id.action_search)
SearchView searchView = searchMenuItem.getMenu();
searchView.setOnQueryTextListener(this);
MenuItemCompat.setOnActionExpandListener(searchMenuItem, new MenuItemCompat.OnActionExpandListener() {
@Override
public boolean onMenuItemActionCollapse(MenuItem item) {
isSearchOpen = true;
invalidateOptionsMenu();
return true;
}
@Override
public boolean onMenuItemActionExpand(MenuItem item) {
isSearchOpen = false;
invalidateOptionsMenu();
return true;
}
});
}
Maintenant, ce code fonctionne comme prévu sauf une question: lorsque je clique sur le bouton de recherche, le SearchView n'apparaît pas. Je n'arrive pas à comprendre quel est le problème. Je recherchais des problèmes similaires sur débordement de la pile, mais je ne l'ai pas trouvé de réponse fixe la question, de sorte que toute aide sera accueilli
Merci. Cela fonctionne parfaitement –