更新活动导航选项卡而不动画

时间:2014-04-15 11:09:08

标签: android android-viewpager android-actionbar-compat

我已经实现了一个无限循环的ViewPager跟随一些在线指南...基本上我伪造了覆盖适配器的GetCount方法的项目数。

效果很好,没问题,片段滑动顺畅...... 我还剩下最后一个问题:我的操作栏处于标签导航模式,所以我希望用当前活动片段更新其标签窗口小部件,问题是如果我在使用“setSelectedNavigationItem”滑动后更新活动标签页“方法,这会触发动画......看起来很奇怪。 我只想设置活动选项卡,以便小部件正确显示哪些片段处于活动状态而不显示动画(已经由其余代码移交)。

mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
                @Override
                public void onPageSelected(int position) {                      
                    getSupportActionBar().setSelectedNavigationItem(
                            position % mPagerAdapter.getRealCount());
                }
            });

1 个答案:

答案 0 :(得分:0)

我找到了默认操作栏的一些案例。

操作栏中的标签位于ScrollingTabContainerView内。选择选项卡时,将调用animateToTab。还有smoothScrollTo被打电话。

您可以通过反射获取此容器。像这样的呕吐(在我的java中不是shure):

Field tabContainerField getActionBar().class.getDeclaredField("mTabScrollView");
tabContainerField.setAccessible(true);
HorizontalScrollView tabsScroll = (HorizontalScrollView)tabContainerField.get(getActionBar);

在选择标签之前,您可以将容器滚动到正确的位置。我可以看到,此代码也适用于SupportActionBar

或者您可以创建自己的标签栏而不是使用系统。