當前位置:首頁 » 安卓系統 » ontoucheventandroid

ontoucheventandroid

發布時間: 2025-02-07 17:45:50

Ⅰ Android事件分發機制

Android中對視圖的Touch事件進行分發處理。
單手指操作:ACTION_DOWN -> ACTION_MOVE -> ACTION_UP
多手指操作:ACTION_DOWN -> ACTION_POINTER_DOWN -> ACTION_MOVE -> ACTION_POINTER_UP -> ACTION_UP.

(1) dispatchTouchEvent() :事件分發

(2) onInterceptTouchEvent() :事件攔截

(3) onTouchEvent() :事件處理

ViewGroup 的相關事件有三個:onInterceptTouchEvent、dispatchTouchEvent、onTouchEvent。

View 的相關事件只有兩個:dispatchTouchEvent、onTouchEvent。

先分析ViewGroup的處理流程:首先得有個結構模型概念:ViewGroup和View組成了一棵樹形結構,最頂層為Activity的ViewGroup,下面有若乾的ViewGroup節點,每個節點之下又有若乾的ViewGroup節點或者View節點,依次類推。如圖:

點擊事件達到頂級 View(一般是一個 ViewGroup),會調用 ViewGroup 的 dispatchTouchEvent 方法,如果頂級 ViewGroup 攔截事件即 onInterceptTouchEvent 返回 true,則事件由 ViewGroup 處理,這時如果 ViewGroup 的 mOnTouchListener 被設置,則 onTouch 會被調用,否則 onTouchEvent 會被調用。也就是說如果都提供的話,onTouch 會屏蔽掉 onTouchEvent。在 onTouchEvent 中,如果設置了 mOnClickListenser,則 onClick 會被調用。如果頂級 ViewGroup 不攔截事件,則事件會傳遞給它所在的點擊事件鏈上的子 View,這時子 View 的 dispatchTouchEvent 會被調用。如此循環。

熱點內容
通達信k線公式源碼 發布:2025-07-13 19:33:53 瀏覽:834
老式轉盤密碼箱怎麼開 發布:2025-07-13 19:32:44 瀏覽:74
少兒編程平板 發布:2025-07-13 19:32:43 瀏覽:878
集成編譯環境是什麼 發布:2025-07-13 19:30:27 瀏覽:688
php判斷字元是否相等 發布:2025-07-13 19:17:21 瀏覽:614
電腦直播唱歌電腦需要什麼配置 發布:2025-07-13 19:03:45 瀏覽:88
config連接資料庫 發布:2025-07-13 19:02:24 瀏覽:953
bt文件解壓 發布:2025-07-13 19:02:16 瀏覽:744
比較便宜的雲伺服器 發布:2025-07-13 18:29:59 瀏覽:406
切換ftp 發布:2025-07-13 18:29:07 瀏覽:738