当以API 11或更高版本为目标时,我对如何在Android 3.0+上使用 onPrepareOptionsMenu(Menu) (以及扩展名,onPreparePanel(int, View, Menu))感到好奇。

我的想法如下:
ActivityActionBaronCreateOptionsMenu(Menu)接收其内容,您可以在其中添加XML菜单资源,直接添加项目或两者的某种组合。 Activity 的任何片段也会收到此调用,并可以选择执行此操作。

要更新ActionBar上的项目,您可以按住Menu实例,也可以调用 invalidateOptionsMenu() ,然后再次调用onCreateOptionsMenu(Menu)

因此,那么onPrepareOptionsMenu(Menu)仍然仅支持不针对API 11或更高版本的旧版应用程序吗?

调用getActionBar().hide()getActionBar().show()可能会触发对onPrepareOptionsMenu(Menu)的调用吗?

添加或删除片段会以某种方式触发此操作吗?

最佳答案

根据我的广泛测试,奇怪的是,它似乎与平台3.0之前的版本完全一样,仅在打开溢出菜单时才被调用。原始问题中列出的任何事件均未触发该回调。

一个可能显而易见但值得注意的事实:在此回调上可以访问整个菜单,因此可以对在操作栏,溢出菜单中和/或隐藏的项目进行操作。

关于android - 在Android 3.0+上使用 `onPrepareOptionsMenu()`,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6080094/

10-12 00:19
查看更多