是否可以实时更改菜单?
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
.
始终显示时,有一个配置
根据我决定的任意标准,是否可以更改菜单的内容(您单击右上角的三点点,它会下拉您想要包含的任何设置)。
这能做到吗?现在我不知道该怎么做,因为我看到这样的行:
@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
.