我无法onPrepareOptionsMenu()
正常工作。无论我尝试什么,我都无法调用它。
我的应用程序的架构如下:我的主 Activity 包含一个 Fragment,其中包含一个 ViewPager,而 ViewPager 又具有四个子 Fragment 实例。目前,我(成功地)使用 填充 Activity 中的初始选项菜单onCreateOptionsMenu()
,但我希望添加一些与每个活动子片段相对应的额外选项。
在我的孩子 Fragments 中,我确保setHasOptionsMenu(true)
正在调用onCreate()
并且getSherlockActivity().supportInvalidateOptionsMenu()
调用 in onActivityCreated()
。在主 Activity 中,onCreateOptionsMenu()
在子 Fragment 实例化后调用一次,无论它们是否包含supportInvalidateOptionsMenu()
。每当寻呼机中的片段被替换时,它就会被再次调用。
我尝试将onPrepareOptionsMenu()
代码向上移动到父片段和主 Activity - 无济于事,这表明问题与我使用嵌套片段无关。我还尝试将onCreateOptionsMenu()
方法从主 Activity 向下移动到两个片段,在那里它没有被调用。
如果有人知道这里发生了什么,我将非常感激,因为我已经坚持了两天了。
更新 - 我已经弄清楚了现在的问题,只是我仍然不确定如何解决它。我正在 4.2 上进行测试,它似乎在 ActivityonCreateOptionsMenu()
之后被调用onResume()
- 如在 JB 4.2 onResume 之后调用的 onCreateOptionsMenu中所见。我认为这意味着片段无法调用onPrepareOptionsMenu()
,因为菜单在它们被实例化之前甚至不存在。那么我该如何解决呢?