自定义viewpager的切换速度
重写滑动辅助类,使用反射机制设置私有字段。
代码:
class mScroller extends Scroller{
private int mDuration = 1000;
public mScroller(Context context, Interpolator interpolator) {
super(context, interpolator);
// TODO Auto-generated constructor stub
}
public void setmDuration(int mDuration) {
this.mDuration = mDuration;
}
@Override
public void startScroll(int startX, int startY, int dx, int dy) {
// TODO Auto-generated method stub
super.startScroll(startX, startY, dx, dy, mDuration);
}
@Override
public void startScroll(int startX, int startY, int dx, int dy,
int duration) {
// TODO Auto-generated method stub
super.startScroll(startX, startY, dx, dy, mDuration);
}
}
使用代码:
void SetViewPagerTime(){
try {
Field field=ViewPager.class.getDeclaredField("mScroller");
field.setAccessible(true);
mScroller scroller=new mScroller(viewPager.getContext(), new AccelerateInterpolator());
field.set(viewPager, scroller);
scroller.setmDuration(1000);
} catch (Exception e) {
e.printStackTrace();
}
}