ViewPager如何 控制 滑动的时间 防止闪屏

类:

public class FixedSpeedScroller extends Scroller {
    private int mDuration = 1500;

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

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

    @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);
    }

    public void setmDuration(int time) {
        mDuration = time;
    }

    public int getmDuration() {
        return mDuration;
    }
}

调用该方法即可:

        /**
         * 滑动 500ms 至最下面的位置
         */
        try {
            Field field = VerticalViewPager.class.getDeclaredField("mScroller");
            field.setAccessible(true);
            FixedSpeedScroller scroller = new FixedSpeedScroller(verticalViewPager.getContext(),
                    new AccelerateInterpolator());
            field.set(verticalViewPager, scroller);
            scroller.setmDuration(500);
        } catch (Exception e) {
        }

你可能感兴趣的:(ViewPager如何 控制 滑动的时间 防止闪屏)