【发布时间】:2020-05-25 00:01:58
【问题描述】:
我有 ViewPager2 与 TabLayout 连接。其他引用 ViewPager 的帖子提供覆盖 setCurrentItem(position, false) ,其中 false 禁用平滑滚动。但是,TabLayoutMediator 调用 onTabSelected(TabLayout.Tab tab),后者调用 viewpager.setCurrentItem(postion, true)。如果 TabLayoutMediator 和 ViewPager2 都是最终的,我该如何覆盖此行为?
已经试过了:
viewPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
@Override
public void onPageSelected(int position) {
viewPager.setCurrentItem(position, false);
}
});
并像这样覆盖 onTabSelected:
tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
viewPager.setCurrentItem(viewPager.getPosition(), false);
}
......
}
【问题讨论】:
-
我也有同样的问题。在具有许多视图的选项卡之间切换时动画会滞后,我觉得奇怪的是没有明确的方法可以禁用它(他们是否假设每个人都只使用 2-3 个选项卡?)。我查看了以前的 ViewPager,但似乎它使用的 FragmentPageAdapter 在 API 27+ 上已被弃用。
标签: android android-tablayout android-viewpager2