在片段之间滑动时消失的操作栏按钮

jfr*_*z42 9 android android-fragments android-viewpager actionbarsherlock

我在操作栏中有一个带有多个选项卡的应用程序,每个选项卡都有一组不同的选项菜单图标显示在操作栏中.有些标签有两个图标,有些没有.

问题是,当我在屏幕之间滑动时,各个屏幕的按钮可能会显示也可能不会显示.即在屏幕上应该有两个图标,操作栏中将没有图标!

但是,当我单击选项卡时,屏幕始终显示正确的图标.

我试过在调试器中分析问题.我确定FragmentPagerAdapter正在调用setMenuVisibility(true)新选择的Fragment,并调用其他Fragments setMenuVisibility(false).

我无法找到按钮外观/消失的确切模式.我可以在两个屏幕之间向左/向右滑动,每个屏幕都有两个不同的按钮.在1到20次滑动之后,问题将发生在任何地方.

通过使用一个图标滑动到屏幕然后返回到带有两个图标的屏幕,消失似乎更加严重.

我试过添加调用Activity.invalidateOptionsMenu()但似乎没有任何影响.例如,我将此调用添加到我的TabAdapter的onPageScrollStateChanged()中,该调用在滑动动画完成后调用.我也尝试将它添加到Fragments的onResume()或TabAdapter.onTabSelected()完成之后,但无济于事.

我正在使用ActionBarSherlock 4.1.0(我在最新的android-support-v4.jar中替换了因为一个不同的问题).我的活动扩展SherlockFragmentActivity并简单地实例化了一个ViewPager.我已经覆盖了FragmentPagerAdapterViewPager的适配器(遵循ViewPager Android文档上的标准示例).

我的手机运行的是Android 2.3.5.

gcl*_*cl1 6

ViewPager/ActionBar中提供了此问题的几种解决方法,菜单项未显示.第8项中讨论的修复对我有用.