摘要:下事件分發和消費事件前言中與事件相關的方法包括能夠響應的空間包括。事件分析事件分發事件發生時的方法會以隧道方式從根元素依次往下傳遞直到最內層子元素或在中間某一元素中由于某一條件停止傳遞將事件傳遞給最外層的
Android下Touch事件分發和消費事件 前言
Android中與touch事件相關的方法包括:dispatchTouchEvent(MotionEvent ev)、onInterceptTouchEvent(MotionEvent ev)、onTouchEvent(MotionEvent ev);能夠
響應的空間包括:ViewGroup、View、Activity。方法與控件的對應關系如下表所示:
Touch事件相關方法 | 方法功能 | View | ViewGroup | Activity |
---|---|---|---|---|
public boolean dispatchTouchEvent(MotionEvent ev) | 事件分發 | YES | YES | YES |
public boolean onInterceptTouchEvent(MotionEvent ev) | 事件攔截 | NO | YES | NO |
public boolean onTouchEvent(MotionEvent ev) | 事件響應 | YES | YES | YES |
從這張表中可以看出ViewGroup對與Touch事件相關的三個方法均能響應,而Activity和View對于onInterceptTouchEvent(MotionEvent ev)也就是事件攔截不進行響應。`另外需要注意的是View對dispatchTouchEvent(MotionEvent ev)響應的前提是可以向該View中添加子View,如果當前的View已經是一個最小單元View(比如TextView),那么無法向這個最小View中添加子View,也就無法向子 View 進行事件的分發和攔截,所以它沒有 dispatchTouchEvent(MotionEvent ev) 和 onInterceptTouchEvent(MotionEvent ev),只有 onTouchEvent(MotionEvent ev)。
Touch事件分析事件分發:public boolean dispatchTouchEvent(MotionEvent ev)
Touch事件發生時Activity的dispatchTouchEvent(MotionEvent ev)方法會以隧道方式(從根元素依次往下傳遞直到最內層子元素或在中間某一元素中由于某一條件停止傳遞)將事件傳遞給最外層View的dispatchTouchEvent(MotionEvent ev)
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/70538.html
摘要:事件被上層攔截時觸發。事件返回時直接指向了父的這一部分是不合理的,實際上它僅僅是給了父的一個返回值,父根據返回值來調用自身的。是根據的返回值來確定是調用子的還是自身的,并沒有將調用交給。 原文鏈接 簡簡單單講清楚android事件分發。 什么叫事件分發機制 ? 事件分發是:當發生了一個事件時,在屏幕上找到一個合適的控件來處理這個事件的過程。 因為一個界面上控件如此之多,發生一個事件后總...
閱讀 1980·2021-09-26 10:19
閱讀 3249·2021-09-24 10:25
閱讀 1623·2019-12-27 11:39
閱讀 1919·2019-08-30 15:43
閱讀 663·2019-08-29 16:08
閱讀 3504·2019-08-29 16:07
閱讀 902·2019-08-26 11:30
閱讀 1270·2019-08-26 10:41