在ViewPager中禁用动画

nol*_*man 50 animation android android-viewpager

我想在我的自定义中禁用转换的所有动画ViewPager.此视图分页器包含四个选项卡 - 每个选项卡加载一个Fragment- 以及视图分页器所做的是切换选项卡:例如,第一个选项卡是索引,第二个选项卡是地图等.

问题是,如果,作为第一个选项卡,我点击第四个选项卡,我可以看到如何ViewPager通过第二个和第三个选项卡,并在第四个选项卡上停止,我不希望这发生.

我试图禁用这一切的动画ViewPager试图用一个setAnimationnull每个用户选择要显示的新标签时间,但它仍然无法正常工作.

有什么想法实现这个,拜托?非常感谢提前!

编辑:我也尝试覆盖onCreateAnimation每个Fragment但仍然无法正常工作

nol*_*man 149

我终于发现:问题可以通过调用mViewPager.setCurrentItem(position)带有额外参数来解决false,这是一个平滑的滚动ViewPager.在此之后,滚动将在没有任何平滑的情况下完成,因此将不会看到动画.

  • @JayVDiyk示例.on Button点击这样调用:`mViewPager.setCurrentItem(position,false);` (3认同)

Ton*_*oni 45

这是另一个解决方案:

  • ViewPager(您的自定义ViewPager)进行子类化
  • 覆盖两个setCurrentItem方法

代码片段:

@Override
public void setCurrentItem(int item, boolean smoothScroll) {
    super.setCurrentItem(item, false);
}

@Override
public void setCurrentItem(int item) {
    super.setCurrentItem(item, false);
}
Run Code Online (Sandbox Code Playgroud)

通过将smoothScroll设置为false,您将禁用滚动动画.

  • 当它已经提供了这个重载时,我们为什么要将`ViewPager`子类化? (4认同)
  • 在 viewpager2 中,viewpager 类是最终类,因此不能被覆盖。 (2认同)