是否可以实时更改菜单?

Is it possible to change the Menu in real time?

根据我决定的任意标准,是否可以更改菜单的内容(您单击右上角的三点点,它会下拉您想要包含的任何设置)。

这能做到吗?现在我不知道该怎么做,因为我看到这样的行:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
}

我不知道我是否可以"re-inflate"实时菜单/更改选项/等等

我就是这样做的:

@Override
public boolean onPrepareOptionsMenu(Menu menu) {
       if(condition1){
           MenuInflater inflater = getMenuInflater();
           inflater.inflate(R.menu.menu_1, menu);
       }else{ 
           MenuInflater inflater = getMenuInflater();
           inflater.inflate(R.menu.menu_2, menu);
       }
       return super.onPrepareOptionsMenu(menu);
}

是的,you can。主要思想是通过 getMenuInflater() 获取 MenuInflater 的实例,然后扩充菜单 XML。它不受您 Activity/Fragment 的 onCreateOptionsMenu()onPrepareOptionsMenu() 的限制。

此外,它不必隐藏在三点菜单或溢出菜单中。当您希望它隐藏在溢出菜单上或通过 showAsAction.

始终显示时,有一个配置