主要理解幾個方法的調(diào)用順序,分發(fā)的先后
dispatchTouchEvent()
onInterceptTouchEvent()
onTouchEvent()
接下來一圖勝千言
事件分發(fā)流程.jpg
可以看到 dispatchTouchEvent() 貫穿事件傳遞,并且主導(dǎo)了事件的流向。
需要特別指出的是 ,如果:
Activity dispatchTouchEvent()方法針對down事件不分發(fā)(返回false)。
ViewGroup 中dispatchTouchEvent()方法針對down事件不分發(fā),ViewGroup 中onInterceptTouchEvent()針對down事件攔截。
View中dispatchTouchEvent()方法針對down事件不分發(fā)。
以上幾種情況都會導(dǎo)致子view不能響應(yīng)up 和move事件。