在调用viewpager.setCurrentItem(item, smoothscroll)方法的时候,把smoothscroll设为true,但还是感觉不顺滑,有种跳的感觉。解决这个问题需要自定义ViewPager.
public class MyViewPager extends ViewPager {
public MyViewPager(Context context) {
super(context);
}
public MyViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
setMyScroller();
}
private void setMyScroller() {
try {
Class<?> clz = ViewPager.class;
Field scroller = clz.getDeclaredField("mScroller");
scroller.setAccessible(true);
scroller.set(this, new MyScroller(getContext())); // 设置自定义滚动器
} catch (Exception e) {
e.printStackTrace();
}
}
public class MyScroller extends Scroller {
public MyScroller(Context context) {
super(context, new DecelerateInterpolator());
}
public void startScroll(int startX, int startY, int dx, int dy, int duration) {
super.startScroll(startX, startY, dx, dy, 1000/*滑动动画一秒*/);
}
}
}