有时候我们需要禁止掉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;
}
}
}