Android 改变Viewpager的滚动速度

来源:互联网 发布:伴随矩阵 编辑:程序博客网 时间:2024/06/07 01:50

由于Viewpager的滚动速度是固定的,且没有提供接口修改。我们只能利用反射的方法给ViewPager对象的属性scroller进行设置,改成自定义的scroller。

反射设置viewpager的scroller代码如下:

try {    FieldmScroller = ViewPager.class.getDeclaredField("mScroller");    mScroller.setAccessible(true);    MyViewPagerScroller myScroller = new MyViewPagerScroller(            mViewPager.getContext());    mscroller.setScrollDuration(1500);    mScroller.set(mViewPager, myScroller);} catch (Exception e) {    e.printStackTrace();}

自定义的

/** * 给viewpager用的自定义的Scroller对像,主要用于控制自动滚动的速度 * @author 小红 * */public class MyViewPagerScroller extends Scroller {    private int mDuration = 1200;//默认移动速度    public MyViewPagerScroller(Context context) {        super(context);    }    public MyViewPagerScroller(Context context, Interpolator interpolator) {        super(context, interpolator);    }    //设置滚动速度    public void setScrollDuration(int duration){        mDuration = duration;    }    @Override    public void startScroll(int startX, int startY, int dx, int dy, int duration) {        super.startScroll(startX, startY, dx, dy, mDuration);    }    @Override    public void startScroll(int startX, int startY, int dx, int dy) {        super.startScroll(startX, startY, dx, dy, mDuration);    } }
0 0
原创粉丝点击