android事件分發機制 就是一個觸摸事件發生了,從一個窗口傳遞到一個視圖,再傳遞到另一個視圖,
最後被消費的過程,在android中仍是比較複雜的傳遞流程以下:
(1) 事件從Activity.dispatchTouchEvent()開始傳遞,只要沒有被中止或攔截,從最上層的View(ViewGroup)
開始一直往下(子View)傳遞。子View能夠經過onTouchEvent()對事件進行處理。
(2) 事件由父View(ViewGroup)傳遞給子View,ViewGroup能夠經過onInterceptTouchEvent()對事件作攔截,
中止其往下傳遞。
(3) 若是事件從上往下傳遞過程當中一直沒有被中止,且最底層子View沒有消費事件,事件會反向往上傳遞,這時父View
(ViewGroup)能夠進行消費,若是仍是沒有被消費的話,最後會到Activity的onTouchEvent()函數。
(4) 若是View沒有對ACTION_DOWN進行消費,以後的其餘事件不會傳遞過來。
(5) OnTouchListener優先於onTouchEvent()對事件進行消費。
上面的消費即表示相應函數返回值爲true。