当你在想要实现点击按钮,ViewPager自动翻页时是否觉得它切换得太快?下面的方法实现对ViewPager自动翻页时间的控制
FixedSpeedScroller.java 类
import android.content.Context;
import android.view.animation.Interpolator;
import android.widget.Scroller;
public class FixedSpeedScroller extends Scroller {
private int mDuration = 1500;
public FixedSpeedScroller(Context context) {
super(context);
}
public FixedSpeedScroller(Context context, Interpolator interpolator) {
super(context, interpolator);
}
@Override
public void startScroll(int startX, int startY, int dx, int dy, int duration) {
// Ignore received duration, use fixed one instead
super.startScroll(startX, startY, dx, dy, mDuration);
}
@Override
public void startScroll(int startX, int startY, int dx, int dy) {
// Ignore received duration, use fixed one instead
super.startScroll(startX, startY, dx, dy, mDuration);
}
public void setmDuration(int time){
mDuration = time;
}
public int getmDuration(){
return mDuration;
}
}
主要代码:
ViewPager viewPager=(ViewPager)findViewById(R.id.viewpager);
try {
Field mField =ViewPager.class.getDeclaredField("mScroller");
mField.setAccessible(true);
FixedSpeedScroller mScroller = new FixedSpeedScroller(MealAcitivity.this, new AccelerateInterpolator());
mScroller.setmDuration(200); //在这里设置时间单位毫秒
mField.set(viewPager, mScroller); //viewPager和FixedSpeedScrolle
}catch(Exception e){
}
viewPager.setAdapter.....//后面的和平时的使用方法相同