在Android中View的事件分發(fā)機制是一個很重要的知識點,為了思路更清晰就稍做了下整理,如有錯誤還請指教。

1.首先事件從上層Activity開始進行分發(fā)給ViewGroup的dispatchTouchEvent
2.ViewGroup中的dispatchTouchEvent有三種結果:
? ?<1>返回true 事件終止
? ?<2>返回fase 事件將不分發(fā),不往下傳遞,回溯至Activty也就是父級中的onTouchEvent中
? ?<3>返回super.dispatchTouchEvent 相當于調用自身的onInterceptTouchEvent詢問是否攔截
3.ViewGroup中的onInterceptTouchEvent同樣三種結果代表含義為:
? <1>返回true 將此事件攔截自己調用自身的onTouchEvent
? <2>返回fase與返回super時結果一樣代表不攔截此事件,將些事件往下傳遞至View的dispatchTouceEvent
4.View中dispatchTouceEvent中結果所代表的含義為:
<1>返回true 事件終止
<2>返回fase 事件將不分發(fā),不往下傳遞,回溯至父級也就是ViewGroup中的onTouchEvent中
<3>返回super.dispatchTouchEvent 因為View中沒有攔截器 所以此時相當于調用自身的onTouchEvent
5.View中onTouchEvent結果代表的含義:
<1>返回true 事件終止
<2>返回fase或super 事件將往上層傳遞,傳遞給父級中的onTouchEvent
最后,在此感謝網絡中無私分享的大神們。