ActionBar 何时以及多久调用一次 onPrepareOptionsMenu() 方法?

发布于 2024-12-08 10:02:36 字数 136 浏览 0 评论 0原文

Activities 很清楚 - 该方法在菜单显示之前被调用。但是,如果ActionBar始终显示呢?如何触发调用它来动态更新menuItems

It is clear for Activities - the method is being called right before the menu is shown. But what about ActionBar when it is always shown? How to trigger it to be invoked to dynamically update menuItems?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

不必了 2024-12-15 10:02:36

按照文档的建议,使用 invalidateOptionsMenu() 触发 onPrepareOptionMenu() 方法。

在 Android 3.0 及更高版本上,当您想要更新菜单时,必须调用 invalidateOptionsMenu(),因为菜单始终处于打开状态。然后系统将调用 onPrepareOptionsMenu(),以便您可以更新菜单项。

Use invalidateOptionsMenu() to trigger onPrepareOptionMenu() method as suggested by document.

On Android 3.0 and higher, you must call invalidateOptionsMenu() when you want to update the menu, because the menu is always open. The system will then call onPrepareOptionsMenu() so you can update the menu items.

递刀给你 2024-12-15 10:02:36

请注意,如果您的最低 sdk 版本低于 Honeycomb(又名 Android 3.0 又名 api level 11),并且您正在使用 ActionBarActivity,则可以调用 supportInvalidateOptionsMenu()
这是 invalidateOptionsMenu() 的支持库版本。

如果您的菜单根据 onCreate() 中的传入意图而更改,您只需在 onPrepareOptionMenu() 中进行更新,如果您稍后在活动生命周期中动态更改菜单,则必须调用 invalideOptionsMenu 或 supportInvalidateOptionsMenu,具体取决于您的最小和目标 sdk 版本。

Note if your min sdk version is less than Honeycomb (aka Android 3.0 aka api level 11), and you are using ActionBarActivity you can call supportInvalidateOptionsMenu()
which is the Support library version of invalidateOptionsMenu().

If your menu changes based upon an incoming intent into onCreate(), you can just do the updates in the onPrepareOptionMenu(), if you dynamically change the menu later in the activities life-cycle you will have to call invalideOptionsMenu, or supportInvalidateOptionsMenu depending on your min and target sdk versions.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文