有时候我们需要禁止掉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;
}
}
}
还有一个处理滑动冲突的连接:ViewPager滑动冲突解决