當前位置:首頁 » 安卓系統 » 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 會被調用。如此循環。

熱點內容
python的execute 發布:2025-03-16 21:40:24 瀏覽:765
今天的訪問量就靠你了 發布:2025-03-16 21:39:35 瀏覽:428
linux分區表查看 發布:2025-03-16 21:20:17 瀏覽:643
java多個if 發布:2025-03-16 21:15:46 瀏覽:694
可樂存儲 發布:2025-03-16 21:15:07 瀏覽:871
ios遷移安卓用什麼助手 發布:2025-03-16 20:12:42 瀏覽:720
python異常值處理 發布:2025-03-16 20:12:42 瀏覽:581
POtn編程 發布:2025-03-16 20:06:11 瀏覽:776
競彩資金怎麼配置 發布:2025-03-16 20:01:57 瀏覽:10
在終端中打開編譯環境 發布:2025-03-16 19:57:34 瀏覽:601