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