有时候我们需要禁止掉ViewPager的左右滑动,怎么做呢,一般是自定ViewPager。然后覆盖ViewPager的onInterceptTouchEvent(MotionEvent arg0)方法和onTouchEvent(MotionEvent arg0)方法,这两个方法的返回值都是boolean类型的,只需要将返回值改为false,那么ViewPager就不会消耗掉手指滑动的事件了
public class MyViewPager extends ViewPager { private boolean isCanScroll = false;//默认不可以滑动 public MyViewPager(Context context) { super(context); } public MyViewPager(Context context, AttributeSet attrs) { super(context, attrs); } public boolean isCanScroll() { return isCanScroll; } public void setCanScroll(boolean canScroll) { isCanScroll = canScroll; } @Override public boolean onTouchEvent(MotionEvent ev) { if (isCanScroll) { return super.onTouchEvent(ev); } else { return false; } } @Override public boolean onInterceptTouchEvent(MotionEvent ev) { if (isCanScroll) { return super.onInterceptTouchEvent(ev); } else { return false; } } }