首页 > 解决方案 > invalidateOptionsMenu 不会在旧 API 上重新创建项目

问题描述

我在我的应用程序上动态设置我的膨胀菜单项onCreateOptionsMenu()。我有一个我检查的标志,如果我想为它们设置样式,我会继续。如果我不想给它们设置样式,我会完全跳过样式。

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.toolbar_menu, menu);

    if(mStyleMenu)
       styleMenu(menu);

    return true;
}

我习惯于invalidateOptionsMenu()随时摆脱造型。这适用于棒棒糖和更高的系统。该样式已从这些菜单项中删除。虽然,在 Kitkat 和 Jelly Bean(例如)上,这些物品保持了风格。

我检查了关于 的评论invalidateOptionsMenu(),它说这些项目已重新创建。因此,我无法解释为什么会在旧系统上发生这种情况。

有人可以告诉我发生了什么吗?

谢谢。

标签: javaandroid

解决方案


要在运行时修改菜单,您必须实现该onPrepareOptionsMenu功能。请参阅菜单


推荐阅读