ScrollView嵌套子View时的滑动冲突问题

问题:ScrollView下嵌套具有滑动操作的子View时,子View滑动时,ScrollView也会滑动。

首先去了解View的事件分发机制。

通过对事件分发机制的了解

  1. dispatchTouchEvent:负责事件的分发
  2. onInterceptTouchEvent:判断是否拦截某个事件
  3. onTouchEvent:消费点击事件
事件传递遵循的顺序:Activity->Window->DecorView->顶层View->子View

解决方法:

1.当父类布局滑动时,父类拦截事件,子类布局.getParent().requestDisallowInterceptTouchEvent(true)

2.当子类布局滑动时,父类不拦截事件,子类布局.getParent().requestDisallowInterceptTouchEvent(true);

ScrollView嵌套子View时的滑动冲突问题