package com.qiwenge.android.ui;
import java.lang.reflect.Field;
import android.content.Context;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.view.animation.Interpolator;
/**
* 缓慢ViewPager.
* <p/>
* 用反射修改Scroller,让ViewPager滑动更慢。降低调用setCurrentItem后的滑动速度。
* <p/>
* Created by Eric on 2014-7-17.
*/
public class SlowViewPager extends ViewPager {
private SlowScroller mScroller;
public SlowViewPager(Context context) {
super(context);
init();
}
public SlowViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
private void init() {
try {
Class<?> viewpager = ViewPager.class;
Field scroller = viewpager.getDeclaredField("mScroller");
scroller.setAccessible(true);
Field interpolator = viewpager.getDeclaredField("sInterpolator");
interpolator.setAccessible(true);
mScroller = new SlowScroller(getContext(), (Interpolator) interpolator.get(null));
scroller.set(this, mScroller);
} catch (Exception e) {
}
}
}