在viewPager中拖动其他控件时,touch事件会被viewpager捕获。
简单的处理方式是对viewpager包装,让其可以对滑动事件进行选择性处理
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
if (scrollble){//scrollble为true时才进行翻页响应,否则不响应
return super .onInterceptTouchEvent(ev);
}
return false;
}
当被拖动的控件接收到action down 事件时关闭viewpager的滑动;
case MotionEvent.ACTION_DOWN: // 手指第一次触摸到屏幕
if (mListener!=null){
mListener.setChangePageEnable(false );
}
当被拖动控件接收到action up 开启viewpager的滑动翻页
case MotionEvent.ACTION_UP: // 手指离开屏幕的一瞬间
if (mListener!=null){
mListener.setChangePageEnable(true );
}