我正在实现新的嵌套片段功能,并且遇到了问题。 我的观点基本上是这样的: 主要活动( A )包含一个片段( B ),此片段( B )包含一个寻呼机适配器,每个都有3个页面它们也是一个片段( C )。 以前到新的getchildfragmentmanger这是不可行的,但它完美无缺。 但确实出现了一个问题,我希望片段C能够参与填充选项菜单。 我厌倦了在onActivityCreated方法中将setHasOptionsMenu(true)放在我的每个 C 片段上,并覆盖onCreateOptionsMenu但没有任何反应...... 如果我尝试从片段 B (这是寻呼机适配器的容器)填充菜单,我可以更改菜单项......
有什么想法吗?
感谢。
答案 0 :(得分:16)
是的,他们可以。
使用android 4.2或支持库修改11嵌套片段参与填充选项菜单,因为总是需要在setHasOptionsMenu(true)
期间调用onCreate()
。
但是如果您使用的是ActionBarSherlock,则必须手动调用父片段onCreateOptionsMenu()
嵌套片段方法onCreateOptionsMenu()
。
更新:issue
答案 1 :(得分:11)
从我对源代码的阅读中可以看出,FragmentManager
和Activity
的实现仅适用于根FragmentManager
以添加到选项菜单/操作栏,而不是子FragmentManager
个实例。
片段B可能需要代表ViewPager
的内容管理选项菜单/操作栏,根据在寻呼机中显示和隐藏的页面更改选项菜单/操作栏中的内容