一、自定义Scroll类,用于调节滑动速度:import android.content.Context;import android.view.animation.Interpolator;import android.widget.Scroller;/*** 自定义Scroller,用于调节ViewPager滑动速度**/public class ViewPagerScroller extends Scroller { private int mScrollDuration = 0;// 滑动速度 public ViewPagerScroller(Context context) { super(context); } public ViewPagerScroller(Context context, Interpolator interpolator) { super(context, interpolator); } public ViewPagerScroller(Context context, Interpolator interpolator, boolean flywheel) { super(context, interpolator, flywheel); } @Override public void startScroll(int startX, int startY, int dx, int dy, int duration) { super.startScroll(startX, startY, dx, dy, mScrollDuration); } @Override public void startScroll(int startX, int startY, int dx, int dy) { super.startScroll(startX, startY, dx, dy, mScrollDuration); }}
二、利用java反射机制,将自定义Scroll和ViewPager结合来调节ViewPager的滑动效果:/** * 设置ViewPager的滑动速度 * * */ private void initViewPagerScroll( ){ try { Field mScroller = null; mScroller = ViewPager.class.getDeclaredField('mScroller'); mScroller.setAccessible(true); ViewPagerScroller scroller = new ViewPagerScroller( mViewPager.getContext( ) ); mScroller.set( mViewPager, scroller); }catch(NoSuchFieldException e){ }catch (IllegalArgumentException e){ }catch (IllegalAccessException e){ } }
三、在初始化ViewPager的地方调用initViewPagerScroll( )。