我在操作栏上添加了溢出图标但现在在某些条件下我想要隐藏它,有没有办法以编程方式隐藏此图标。
答案 0 :(得分:1)
对于您要隐藏菜单的特定条件,您可以在活动类和invalidateOptionsMenu();
方法onPrepareOptionsMenu
中为所有菜单项手动调用setVisible(false);
。
例如
public void someMethod(){
if (<somecondition>){
invalidateOptionsMenu();
}
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
if (<somecondition>){
menu.findItem(R.id.action_one).setVisible(false);
menu.findItem(R.id.action_two).setVisible(false);
menu.findItem(R.id.action_three).setVisible(false);
}else{
menu.findItem(R.id.action_one).setVisible(true);
menu.findItem(R.id.action_two).setVisible(true);
menu.findItem(R.id.action_three).setVisible(true);
}
}
如果希望它再次可见,请再次调用invalidateOptionsMenu();
并确保onPrepareOptionsMenu
方法中的条件为false,以便执行其他部分。