Поскольку ActionView для SearchView скрывает свой пункт меню, но не другой, я пытаюсь показать / скрыть один из пунктов меню ActionBar через onMenuItemActionExpand и onMenuItemActionCollapse события:
Menu cMenu;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.item, menu);
cMenu = menu;
MenuItem item = menu.findItem(R.id.menuSearch);
item.setOnActionExpandListener(new MenuItem.OnActionExpandListener() {
@Override
public boolean onMenuItemActionCollapse(MenuItem item) {
// Do something when action item collapses
cMenu.findItem(R.id.favs).setVisible(true);
return true; // Return true to collapse action view
}
@Override
public boolean onMenuItemActionExpand(MenuItem item) {
// Do something when expanded
cMenu.findItem(R.id.favs).setVisible(false);
return true; // Return true to expand action view
}
});
final SearchView searchView = (SearchView) item.getActionView();
searchView.setQueryHint(getString(R.string.search_list));
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
//Perform the final search
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
new FilterListTask().execute(newText);
return false;
}
});
return true;
}
Это не работает правильно, потому что при добавлении строки кода: cMenu.findItem(R.id.favs).setVisible(true)
в onMenuItemActionCollapse
оба элемента исчезают из панели действий, когдаSearchView сворачивается.
Есть ли способ скрыть пункт меню в собственной функциональности ActionView?Есть идеи, пожалуйста?