【问题标题】: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 一直显示时,有一个配置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-17
      • 1970-01-01
      • 2012-07-23
      • 2016-09-22
      • 1970-01-01
      相关资源
      最近更新 更多