如何动态地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);

    }