测试阿里云MD
準備工作已經完成,閑言少敘書歸正傳吧。
和攔截處理機制詳解一樣,為了系統的研究android對事件的處理,我也寫了一個小demo對不同的情況進行測試并結合源碼分析(多說一句,其實看源碼確實很枯燥,有時候因為水平有限有的部分看不懂而查閱大量資料,笨人有笨法:結合demo測試驗證和理解,雖然效率低但是效果不錯),可以得出如下的結論(至于結論的由來,下面會說明):
1)android對事件分發的順序為:Activity–>PhoneWindow->DecorView->yourView;
2)android控件對事件處理的優先級:onTouch>onTouchEvent>onClick
android既然可以對事件進行攔截,肯定有某個方法對事件進行的傳遞或者分發(以前我總是說事件傳遞,但是看了各種資料都說是事件分發,在此統一一下就用“分發”這個名詞吧)。完成事件分發功能的方法由Activity的dispatchTouchEvent(MotionEvent ev)l來負責:
總結