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