看了网上很多资料。
最后我发现可以用很简单的几句话就能把它说清楚
1 每个 viewgroup 内都有 三个方法
a dispatchTouchEvent 是自己决定要不要(管他爹)要这个苹果的 一般使用方法是 在此方法内
getParent().requestDisallowInterceptTouchEvent(false/true)
true表示要了, 苹果拿到手 false 表示 不要了,那这个苹果还在他爹那里
b onintercepTouchEvent 是这个苹果要不要往下发的,(到了这一步 说明上一步是 要了,苹果拿到手)
c onTouchEvent 苹果自己吃了,(这一步被执行到的话比较特殊,分两种情况,
第二是 就没有往下发 onintercepTouchEvent 返回 true
直接自己吃掉了,
第一种是,往下发了,onintercepTouchEvent 返回 false(默认情况)
但是他儿子不要,又返回上来了,子view的ontouch 返回 false
他就有机会吃到了)
补充知识 view 只有 ontouch 方法 没有 dispatch 和 intercept 方法,
view 的ontouch 方法默认返回true