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

2021-07-23 21:49:11 字數 378 閱讀 6454

作者的文章已經寫得很清楚了。viewgroup就是比變通的view多了個攔截機制,通俗點講就是viewgroup中重寫了dispatchtouchevent(),在其中加上了攔截和對子view的分發管理,而預設情況下是不會攔截的。借用一下作者整理的總結:

1. android事件分發是先傳遞到viewgroup,再由viewgroup傳遞到view的。

2. 在viewgroup中可以通過onintercepttouchevent方法對事件傳遞進行攔截,onintercepttouchevent方法返回true代表不允許事件繼續向子view傳遞,返回false代表不對事件進行攔截,預設返回false。

3. 子view中如果將傳遞的事件消費掉,viewgroup中將無法接收到任何事件。

安卓事件分發

dispatchtouchevent 事件派發先是隧道方式 再是冒泡方式 隧道方式傳遞,直到某乙個元素消耗此事件,由上至下逐層分發檢視。冒泡方式傳遞,當某個檢視消耗事件後,其return true,是與分發相反的方法向上傳遞。具體分發給哪乙個檢視是通過當前觸控點座標在當前層哪個檢視上判斷 onint...

安卓事件分發機制學習

在學習事件分發機制之前,需要先對以下幾個知識點有所了解 view和viewgroup什麼?事件 view 事件的分發機制 viewgroup事件的分發機制 一 view和viewgroup view view是所有ui元件的基類,viewgroup 是容納這些元件的容器,其本身也是從view派生出來...

簡析安卓事件分發

ontouchevent,dispatchtouchevent,setontouchlistener 無論是down,move,up執行的順序都是 首先執行的是 dispatchtoucheventpublic boolean dispatchtouchevent motionevent event...