一張圖簡單看懂View事件的分發(fā)機制

在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

最后,在此感謝網絡中無私分享的大神們。

參考資料:圖解 Android 事件分發(fā)機制

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容