要实现ViewPager禁止手势滑动效果,或者子View与ViewPager滑动冲突时,可以用如下方法解决:
自定义一个ViewPager,继承自ViewPager,重写onInterceptTouchEvent方法,返回false。再设置ViewPager的onTouchListener。
代码如下:
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
return false;
}
mViewPager.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
return true;
}
});
注意:当只想解决子View与ViewPager的滑动冲突时,如果子View是完全充满ViewPager的,那么ViewPager的滑动效果会失效。