由于 SearchView 的 ActionView 隐藏了它的菜单项,但没有隐藏其他菜单项,因此我试图通过显示/隐藏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收合时,两项都将从ActionBar中消失。
有什么方法可以隐藏ActionView自身功能中的菜单项?有什么想法吗?