我有一个带有多个选项卡的应用程序,每个选项卡在操作栏中都有不同的选项菜单图标。一些选项卡有两个图标,而另一些则没有。
问题是当我在屏幕之间滑动时,各个屏幕的按钮可能会显示或不显示。例如,在应该有两个图标的屏幕上,操作栏中将没有任何图标!
然而,当我点击选项卡时,屏幕总是正确地显示相应的图标。
我已经尝试在调试器中分析问题。我确信FragmentPagerAdapter为新选择的Fragment正确地调用了setMenuVisibility(true),并且其他Fragment则被调用了setMenuVisibility(false)。
我找不到关于按钮出现/消失的确切模式。我可以在两个具有不同按钮的屏幕之间向左/向右滑动。问题会在1到20次滑动后的任何地方发生。
消失似乎会因为向一个只有一个图标的屏幕滑动,然后返回到一个有两个图标的屏幕。
我已经尝试添加Activity.invalidateOptionsMenu()的调用,但似乎没有影响。例如,我将此调用添加到我的TabAdapter的onPageScrollStateChanged()中,该方法在滑动动画完成后调用。我还尝试将其添加到Fragments的onResume()或TabAdapter.onTabSelected()完成之后,但都没有效果。
我正在使用ActionBarSherlock 4.1.0(由于其他问题,我已经替换了最新的android-support-v4.jar)。我的Activity扩展了SherlockFragmentActivity并简单地实例化了一个ViewPager。我已经重写了ViewPager的适配器的FragmentPagerAdapter(遵循ViewPager Android文档上的标准示例)。
我的手机运行Android 2.3.5。
问题是当我在屏幕之间滑动时,各个屏幕的按钮可能会显示或不显示。例如,在应该有两个图标的屏幕上,操作栏中将没有任何图标!
然而,当我点击选项卡时,屏幕总是正确地显示相应的图标。
我已经尝试在调试器中分析问题。我确信FragmentPagerAdapter为新选择的Fragment正确地调用了setMenuVisibility(true),并且其他Fragment则被调用了setMenuVisibility(false)。
我找不到关于按钮出现/消失的确切模式。我可以在两个具有不同按钮的屏幕之间向左/向右滑动。问题会在1到20次滑动后的任何地方发生。
消失似乎会因为向一个只有一个图标的屏幕滑动,然后返回到一个有两个图标的屏幕。
我已经尝试添加Activity.invalidateOptionsMenu()的调用,但似乎没有影响。例如,我将此调用添加到我的TabAdapter的onPageScrollStateChanged()中,该方法在滑动动画完成后调用。我还尝试将其添加到Fragments的onResume()或TabAdapter.onTabSelected()完成之后,但都没有效果。
我正在使用ActionBarSherlock 4.1.0(由于其他问题,我已经替换了最新的android-support-v4.jar)。我的Activity扩展了SherlockFragmentActivity并简单地实例化了一个ViewPager。我已经重写了ViewPager的适配器的FragmentPagerAdapter(遵循ViewPager Android文档上的标准示例)。
我的手机运行Android 2.3.5。
android:orderInCategory
数字。 - Zvi