如何动态地enable/disable整个溢出菜单?
How to dynamically enable/disable entire overflow menu?
我想在运行时根据某些用户操作 enable/disable 我的工具栏中的整个溢出菜单。这都在同一个片段中。如果条件成立,我尝试只返回 onPrepareOptionsMenu() ,一旦用户触摸它,它就会隐藏三点图标。但是,我不知道如何再次显示选项菜单。
调用 getActivity().invalidateOptionsMenu()
会再次调用 onPrepareOptionsMenu()
,您可以在其中 load/not 根据您的条件加载菜单。
如果你想再次显示或隐藏菜单而不用膨胀它们,我只想再添加一件事。您可以像这样使用 oncreateoptions 菜单参数
菜单溢出;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.mymenu, menu);
this.overflow = menu;
return super.onCreateOptionsMenu(menu);
}
然后制作一个根据索引显示或隐藏任何菜单项的函数。例如
public void hideorShowMenuItems(boolean bool){
overflow.getItem(1).setVisible(bool);
overflow.getItem(2).setVisible(bool);
overflow.getItem(3).setVisible(bool);
}
我想在运行时根据某些用户操作 enable/disable 我的工具栏中的整个溢出菜单。这都在同一个片段中。如果条件成立,我尝试只返回 onPrepareOptionsMenu() ,一旦用户触摸它,它就会隐藏三点图标。但是,我不知道如何再次显示选项菜单。
调用 getActivity().invalidateOptionsMenu()
会再次调用 onPrepareOptionsMenu()
,您可以在其中 load/not 根据您的条件加载菜单。
如果你想再次显示或隐藏菜单而不用膨胀它们,我只想再添加一件事。您可以像这样使用 oncreateoptions 菜单参数
菜单溢出;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.mymenu, menu);
this.overflow = menu;
return super.onCreateOptionsMenu(menu);
}
然后制作一个根据索引显示或隐藏任何菜单项的函数。例如
public void hideorShowMenuItems(boolean bool){
overflow.getItem(1).setVisible(bool);
overflow.getItem(2).setVisible(bool);
overflow.getItem(3).setVisible(bool);
}