在Android 3.0+上使用`onPrepareOptionsMenu()`

Jak*_*ton 21 android android-fragments android-3.0-honeycomb

我很好奇在针对API 11或更高版本时,Android 3.0+上如何使用(如果有的话)onPrepareOptionsMenu(Menu)(以及扩展名onPreparePanel(int, View, Menu)).

我的想法如下:

一个ActivityActionBar接收其内容onCreateOptionsMenu(Menu),您可以从中扩展XML菜单资源,直接添加项目或两者的某种组合.活动的任何片段也将接收此呼叫,并可选择执行相同操作.

要更新ActionBar上的项目,您可以保持Menu实例或呼叫invalidateOptionsMenu(),然后onCreateOptionsMenu(Menu)再次结束呼叫.

onPrepareOptionsMenu(Menu)那么,是否仍然只能支持不针对API 11或更新版本的遗留应用程序?

是否可以呼叫getActionBar().hide()getActionBar().show()触发呼叫onPrepareOptionsMenu(Menu)

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

Jak*_*ton 10

从我的广泛测试中,它奇怪地看起来与3.0版本之前的版本完全一样,只有在打开溢出菜单时才会调用.回调未触发原始问题中列出的任何事件.

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