剖析touch事件在View中的傳遞

2022-05-04 09:09:12 字數 426 閱讀 6790

話不多說,直奔主題,先來看一張圖

然後簡單說明下:

總的來說,觸控事件是從最外層的viewgroup,一級一級傳遞進來的

事件傳遞到乙個view(viewgroup),先**到dispatchtouchevent()方法,這裡如果不super的話,就直接只執行當前**了,super的話,到onintercepttouchevent()方法,這裡比較關鍵,返回false的話,說明不攔截,繼續往下傳,true的話,說明攔截,直接截斷了傳遞鏈,然後轉到本view的outouchevent方法,整個就結束了。

繼續傳遞的話,如果都沒有攔截,就從子view的ontouchevent方法一直傳上來,傳到頂層的view,假如傳遞鏈中間乙個view的ontouchevent返回true的話,

說明這個view已經處理事件了,就到此為止了,不往上傳遞了。

ps:

iPhone開發中touch的事件

在viewcontroller中重寫touch的事件的方法體就可實現特定的touch功能 但這些touch事件會被加在之上的tableview或scrollview等遮蔽,希望知道解決方案的留下方法 下面 實現清掃事件 void touchesbegan nsset touches witheven...

Android中Touch事件的處理

最近和隊友做了個微博傳送助手fuubo 由於主要是做前台,所以當中碰到了很多蛋疼的東西,做過android的人都知道前台是android的硬傷,在 android應用層做得很好的人前台功底都是很強的,這裡就我對處理前台動畫時對android的touch事件 的一些體會心得給大家分享下,如果有錯誤的地...

WPF觸屏Touch事件在巢狀控制項中的響應問題

原文 wpf觸屏touch事件在巢狀控制項中的響應問題 前幾天遇到個touch事件的坑,記錄下來以增強理解。具體是 想把乙個listview巢狀到另乙個listview,這時候如果list view 子listview 的內容過多超過容器高度,它是不會出現滾動條壓縮內容區域的,反而會將滾動區域轉移到...