当以API 11或更高版本为目标时,我对如何在Android 3.0+上使用 onPrepareOptionsMenu(Menu)
(以及扩展名,onPreparePanel(int, View, Menu)
)感到好奇。
我的想法如下:Activity
的ActionBar
从onCreateOptionsMenu(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/