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()才能正常分發