1. 程式人生 > >安卓事件分發學習總結(下)

安卓事件分發學習總結(下)

學習地址:Android事件分發機制完全解析,帶你從原始碼的角度徹底理解(下)
作者的文章已經寫得很清楚了。ViewGroup就是比變通的View多了個攔截機制,通俗點講就是ViewGroup中重寫了dispatchTouchEvent(),在其中加上了攔截和對子view的分發管理,而預設情況下是不會攔截的。借用一下作者整理的總結:
1. Android事件分發是先傳遞到ViewGroup,再由ViewGroup傳遞到View的。
2. 在ViewGroup中可以通過onInterceptTouchEvent方法對事件傳遞進行攔截,onInterceptTouchEvent方法返回true代表不允許事件繼續向子View傳遞,返回false代表不對事件進行攔截,預設返回false。
3. 子View中如果將傳遞的事件消費掉,ViewGroup中將無法接收到任何事件。