=====================================1===========================================
ViewPager嵌套ViewPager
滑动冲突:ViewPager相互嵌套,导致子ViewPager无法滑动,且子ViewPager中的view无法被点击
解决方法:内部拦截法
父ViewPager的
public boolean onInterceptTouchEvent(MotionEvent ev) {
int action=ev.getAction();
if(action==MotionEvent.ACTION_DOWN){
return false;
}else {
return true;
}
}
在ACTION_DOWN的时候,父ViewPager没有拦截该事件
在子ViewPager的dispatchTouchEvent调用:
getParent().requestDisallowInterceptTouchEvent(true);
这样子父ViewPager就不会拦截子ViewPager的滑动事件
=====================================2===========================================
ViewPager嵌套ListView
外部拦截法:重写ViewPager的onIntercepTouchEvent,
判断如果是左右滑动就拦截,
上下滑动就拦截
内部拦截法 | 外部拦截法 | |
滑动冲突方向 | 一致 | 不一致 |
解决核心 | requestDisallowInterceptTouchEvent | onIntercepTouchEvent |