【问题标题】:Is it possible to change the Menu in real time?是否可以实时更改菜单?
【发布时间】:2016-10-10 23:05:08
【问题描述】:
根据我决定的任意标准,是否可以更改菜单的内容(您单击右上角的三点符号,它会下拉您想要包含的任何设置)。
这可以吗?现在我不知道该怎么做,因为我看到这样的行:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
我不知道我是否可以实时“重新膨胀”菜单/更改选项/等等。
【问题讨论】:
标签:
android
android-activity
menu
layout-inflater
【解决方案1】:
我就是这样做的:
@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);
}
【解决方案2】:
是的,you can。主要思想是您通过getMenuInflater() 获得MenuInflater 的实例,然后扩充您的菜单XML。它不受您的活动/片段的onCreateOptionsMenu() 或onPrepareOptionsMenu() 的限制。
此外,它不必隐藏在三点菜单或溢出菜单中。当您希望它隐藏在溢出菜单上或通过showAsAction 一直显示时,有一个配置。