java - 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()
,它说这些项目已重新创建。因此,我无法解释为什么会在旧系统上发生这种情况。
有人可以告诉我发生了什么吗?
谢谢。
解决方案
要在运行时修改菜单,您必须实现该onPrepareOptionsMenu
功能。请参阅菜单。
推荐阅读
- python - How to write a code to produce a sequence dependent on previous elements
- javascript - 事件发生时从 express 到 angular 获取 http 调用
- c - How to change an array of chars with the lines of a file?
- crystal-reports - 是否可以使用 vb.net 在 Crystal Report 中将标题固定在左侧而不是顶部
- javascript - Discord JS 调用 JSON
- node.js - 使用 cookie 的 iFraming Kibana 仪表板时出现 TOO_MANY_REDIRECTS 错误
- mysql - SQL Query 根据键值列表有条件地检索记录
- javascript - 如何在传单中为 setView 动画使用自定义三次贝塞尔曲线?
- javascript - 如何在传单中显示几个 d3 可重复使用的图表?
- python - 如何处理 Pandas DataFrame 中的缺失值?