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