代码例如以下:
try {
Interpolator sInterpolator = new AccelerateInterpolator();Field mScroller = ViewPager.class.getDeclaredField("mScroller");mScroller.setAccessible(true);FixedSpeedScroller scroller = new FixedSpeedScroller(mViewPager.getContext(), sInterpolator);mScroller.set(mViewPager, scroller);} catch (NoSuchFieldException e) { // TODO Auto-generated catch blocke.printStackTrace();} catch (IllegalArgumentException e) { // TODO Auto-generated catch blocke.printStackTrace();} catch (IllegalAccessException e) { // TODO Auto-generated catch blocke.printStackTrace();}FixedSpeedScroller类的代码:
@SuppressLint("NewApi")
public class FixedSpeedScroller extends Scroller { private int mDuration = 400;//滑动所用时间public FixedSpeedScroller(Context context) { super(context);}public FixedSpeedScroller(Context context, Interpolator interpolator) { super(context, interpolator);}public FixedSpeedScroller(Context context, Interpolator interpolator,boolean flywheel) { super(context, interpolator, flywheel);}@Overridepublic void startScroll(int startX, int startY, int dx, int dy, int duration) { // Ignore received duration, use fixed one insteadsuper.startScroll(startX, startY, dx, dy, mDuration);}@Overridepublic void startScroll(int startX, int startY, int dx, int dy) { // Ignore received duration, use fixed one insteadsuper.startScroll(startX, startY, dx, dy, mDuration);} }