View Touch 事件分發

Android 中Layout 繼承 ViewGroup,佈局中在嵌套view

點擊事件分發流程是這樣的:

ViewGroup.dispatchTouchEvent()   分發viewgroup及子view的點擊事件

View.dispatchTouchEvent()  分發view的點擊事件


換句話說點擊事件的總入口是ViewGroup.dispatchTouchEvent(),返回值 true=接受持續不斷的touch事件,false=只接受一次touch事件

ViewGroup.dispatchTouchEvent() 會調用ViewGroup.onInterceptTouchEvent()  詢問是否需要攔截,true=ViewGroup.onTouch(), false=View.dispatchTouchEvent()

dispatchTouchEvent 的返回值 是綜合處理 onIntercepTouchEvent() 和onTouchEvent後的結果


值得注意的是,繼承ViewGroup及View後的事件分發是由父view分發的,需要調用super.dispatchTouchEvent()才能正常分發

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章