图解Android事件传递之ViewGroup篇
生活随笔
收集整理的這篇文章主要介紹了
图解Android事件传递之ViewGroup篇
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本篇文章主要講述ViewGroup中關于觸摸事件傳遞的相關邏輯。主要梳理一下dispatchTouchEvent函數。
一些知識點
- FLAG_DISALLOW_INTERCEPT,可以使用requestDisallowInterceptTouchEvent來設置ViewGroup的這個標記位,讓ViewGroup不攔截事件。
- ViewGroup只會將觸摸事件轉發給那些可見并且觸摸事件發生在其可視范圍內的子View
- 如果一個子View沒有接收ACTION_DOWN事件,那么這個事件系列的ACTION_MOVE或者ACTION_UP事件根本不會傳遞給它
- 關于ViewGroup攔截與否消費與否的判斷,只要記住一點就可以輕易判斷:1 ViewGroup是否最終沒有消費觸摸事件(無論是自己自己消費,還是分發給子view消費),決定之后的觸摸事件是否會再轉發給它。
dispatchTouchEvent中遍歷child分發事件的邏輯 轉換觸摸事件并分發的過程-dispatchTransformedTouchEvent
更詳細的源代碼請查看我的github
總結
以上是生活随笔為你收集整理的图解Android事件传递之ViewGroup篇的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: javaweb入门笔记(4)-reque
- 下一篇: Android控件— — —ImageV