viewpager中2页之间的过渡无法顺利进行

罗尼·苏里斯蒂奥

我使用3个片段在viewpager上工作,我也有3个操作栏选项卡。我可以通过单击标签或在标签下方滑动来更改页面。

如果满足以下条件,动画将非常流畅:

  1. 我通过单击操作栏选项卡来更改页面
  2. 如果我的手指缓慢向左或向右移动以更改页面
  3. 如果我的手指移动缓慢,则将手指从屏幕上移开(回到先前的屏幕)

但是问题是,当我快速滑动手指时,上一页和下一页之间的过渡会有一定的冻结时间,尽管该时间仅不到1秒。

我只使用普通的viewpager和自定义滚动条来降低动画速度。这是我的代码

主要活动:

viewPager = (ViewPager) findViewById(R.id.pager);
mAdapter = new TabsPagerAdapter(getSupportFragmentManager());
viewPager.setAdapter(mAdapter);
viewPager.setOffscreenPageLimit(3);


try {
      Field mScroller;
      mScroller = ViewPager.class.getDeclaredField("mScroller");
      mScroller.setAccessible(true);
      myScroller scroller = new myScroller(viewPager.getContext(), new DecelerateInterpolator()); 
      mScroller.set(viewPager, scroller);
    } catch (NoSuchFieldException e) {
    } catch (IllegalArgumentException e) {
    } catch (IllegalAccessException e) {
    }

我需要帮助以使页面之间的过渡顺利进行,如果可能的话,我宁愿不要使用外部的其他lib(例如:jazzy view pager)。提前致谢

编辑:添加滚动条类

public class myScroller extends Scroller {

private int mDuration = 400;

public myScroller(Context context) {
    super(context);
}

public myScroller(Context context, Interpolator interpolator) {
    super(context, interpolator);
}

public myScroller(Context context, Interpolator interpolator, boolean flywheel) {
    super(context, interpolator, flywheel);
}


@Override
public void startScroll(int startX, int startY, int dx, int dy, int duration) {
    // Ignore received duration, use fixed one instead
    super.startScroll(startX, startY, dx, dy, mDuration);
}

@Override
public void startScroll(int startX, int startY, int dx, int dy) {
    // Ignore received duration, use fixed one instead
    super.startScroll(startX, startY, dx, dy, mDuration);
}
}
罗尼·苏里斯蒂奥

终于我找到了问题,

这是我的旧代码的条件:我有2个带有列表视图的页面。当我滑动它时,我再次在第二页上全部加载列表视图。

当我删除代码以加载所有列表视图时,页面之间的过渡会顺利进行。它似乎先加载列表视图,然后加载动画页面更改。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

带图标的输入字段的验证无法顺利进行

来自分类Dev

Ubuntu开发版/如何参与或如何顺利进行

来自分类Dev

有什么方法可以让Chrome顺利进行字母间距的CSS转换?

来自分类Dev

建立与服务器的连接期间,如何使progressBar顺利进行?

来自分类Dev

Skype邮件需要很长时间才能传递,但通话可以顺利进行。怎么修?

来自分类Dev

如何在Mac OS X上正确挂起vagrant vm,以便能够顺利进行恢复?

来自分类Dev

如何使过渡顺利?

来自分类Dev

顺利过渡removeClass

来自分类Dev

无法在Django URL中顺利导航

来自分类Dev

程序在多线程中无法顺利结束

来自分类Dev

如何使用页面作为过渡在vue.js中的页面之间进行过渡?

来自分类Dev

无法在Framer Motion中运行时进行过渡

来自分类Dev

CGContextClearRect在touchesMove事件中无法在目标C中顺利运行

来自分类Dev

CGContextClearRect在touchesMove事件中无法在目标C中顺利运行

来自分类Dev

无法顺利滚动android 4.1中的图像的listView

来自分类Dev

CSS过渡不顺利触发

来自分类Dev

CSS过渡不顺利触发

来自分类Dev

CSS动画:过渡无法反向进行

来自分类Dev

ViewPager中片段之间的通信

来自分类Dev

在javascript中顺利滚动?

来自分类Dev

无法在索引页yii2中设置局部视图

来自分类Dev

在JavaScript中添加类之间的CSS过渡

来自分类Dev

div中图像到文本之间的过渡

来自分类Dev

CSS在JavaScript中添加类之间的过渡

来自分类Dev

有没有办法在Three.js中的纹理之间进行自定义过渡

来自分类Dev

程序无法在C ++中的货币之间进行转换

来自分类Dev

无法在JavaFX中的控制器之间进行通信

来自分类Dev

无法顺利访问xpath属性

来自分类Dev

是否可以在使用setInterval()函数更改的图像之间进行过渡?

Related 相关文章

  1. 1

    带图标的输入字段的验证无法顺利进行

  2. 2

    Ubuntu开发版/如何参与或如何顺利进行

  3. 3

    有什么方法可以让Chrome顺利进行字母间距的CSS转换?

  4. 4

    建立与服务器的连接期间,如何使progressBar顺利进行?

  5. 5

    Skype邮件需要很长时间才能传递,但通话可以顺利进行。怎么修?

  6. 6

    如何在Mac OS X上正确挂起vagrant vm,以便能够顺利进行恢复?

  7. 7

    如何使过渡顺利?

  8. 8

    顺利过渡removeClass

  9. 9

    无法在Django URL中顺利导航

  10. 10

    程序在多线程中无法顺利结束

  11. 11

    如何使用页面作为过渡在vue.js中的页面之间进行过渡?

  12. 12

    无法在Framer Motion中运行时进行过渡

  13. 13

    CGContextClearRect在touchesMove事件中无法在目标C中顺利运行

  14. 14

    CGContextClearRect在touchesMove事件中无法在目标C中顺利运行

  15. 15

    无法顺利滚动android 4.1中的图像的listView

  16. 16

    CSS过渡不顺利触发

  17. 17

    CSS过渡不顺利触发

  18. 18

    CSS动画:过渡无法反向进行

  19. 19

    ViewPager中片段之间的通信

  20. 20

    在javascript中顺利滚动?

  21. 21

    无法在索引页yii2中设置局部视图

  22. 22

    在JavaScript中添加类之间的CSS过渡

  23. 23

    div中图像到文本之间的过渡

  24. 24

    CSS在JavaScript中添加类之间的过渡

  25. 25

    有没有办法在Three.js中的纹理之间进行自定义过渡

  26. 26

    程序无法在C ++中的货币之间进行转换

  27. 27

    无法在JavaFX中的控制器之间进行通信

  28. 28

    无法顺利访问xpath属性

  29. 29

    是否可以在使用setInterval()函数更改的图像之间进行过渡?

热门标签

归档