设置ViewPager不可以滑动翻页
public class NoScrollViewPager extends ViewPager {
public NoScrollViewPager(Context context) {
super(context);
}
public NoScrollViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev)
{
return false;
}
@Override
public boolean onTouchEvent(MotionEvent ev)
{
return false;
}
}
修改ViewPager调用setCurrentItem时,滑屏的速度
1、自定义一个Scroll类,用于控制ViewPager滑动速度
import android.content.Context;
import android.support.v4.view.ViewPager;
import android.view.animation.Interpolator;
import android.widget.Scroller;
import java.lang.reflect.Field;
public class FixedSpeedScroller extends Scroller {
private int mDuration = 0;// 滑动速度
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);
}
@Override
public void startScroll(int startX, int startY, int dx, int dy, int duration) {
super.startScroll(startX, startY, dx, dy, mDuration);
}
@Override
public void startScroll(int startX, int startY, int dx, int dy) {
super.startScroll(startX, startY, dx, dy, mDuration);
}
/**
* 设置速度
* @param duration
*/
public void setScrollDuration(int duration){
this.mDuration = duration;
}
public void initViewPagerScroll(ViewPager viewPager) { //(NoScrollViewPager viewPager)
try {
Field mScroller = ViewPager.class.getDeclaredField("mScroller");
mScroller.setAccessible(true);
mScroller.set(viewPager, this);
} catch(Exception e) {
e.printStackTrace();
}
}
}
2、在Activity中设置切换速度
FixedSpeedScroller scroller = new FixedSpeedScroller(mContext);
scroller.setScrollDuration(0);
scroller.initViewPagerScroll(am_viewpager); //am_viewpager为你的viewpager