touch事件分析

2021-07-11 23:37:19 字數 1074 閱讀 9789

事件分發:public boolean dispatchtouchevent(motionevent ev)

touch 事件發生時 activity 的 dispatchtouchevent(motionevent ev) 方法會以隧道方式(從根元素依次往下傳遞直到最內層子元素或在中間某一元素中由於某一條件停止傳遞)將事件傳遞給最外層 view 的 dispatchtouchevent(motionevent ev) 方法,並由該 view 的 dispatchtouchevent(motionevent ev) 方法對事件進行分發。dispatchtouchevent 的事件分發邏輯如下:

如果當前 view 獲取的事件直接來自 activity,則會將事件返回給 activity 的 ontouchevent 進行消費;

如果當前 view 獲取的事件來自外層父控制項,則會將事件返回給父 view 的  ontouchevent 進行消費。

如果返回系統預設的 super.dispatchtouchevent(ev),事件會自動的分發給當前 view 的 onintercepttouchevent 方法。

事件攔截:public boolean onintercepttouchevent(motionevent ev)

在外層 view 的 dispatchtouchevent(motionevent ev) 方法返回系統預設的 super.dispatchtouchevent(ev) 情況下,事件會自動的分發給當前 view 的 onintercepttouchevent 方法。onintercepttouchevent 的事件攔截邏輯如下:

事件響應:public boolean ontouchevent(motionevent ev)

在 dispatchtouchevent 返回 super.dispatchtouchevent(ev) 並且 onintercepttouchevent 返回 true 或返回 super.onintercepttouchevent(ev) 的情況下 ontouchevent 會被呼叫。ontouchevent 的事件響應邏輯如下:

touch事件傳遞

首先設計到下面4個方法 先後順數也是這麼執行的,dispatchtouchevent 分發 onintercepttouchevent 攔截 ontouch 觸控 ontouchevent 觸控事件 1 首先講述一下 ontouch ontouchevent 的區別 ontouch 是 view o...

touch事件應用

js的touch事件,一般用於移動端的觸屏滑動 function function touch event touchstart 當手指觸控螢幕時觸發 即使已經有乙個手指放在了螢幕上也會觸發。touchmove 當手指在螢幕上滑動時連續的觸發。在這個事件發生期間,呼叫preventdefault 可...

Touch事件分發

1.0touch事件傳遞機制 touch事件分發 根據自身需要事件需要那層處理,來實現效果,分配事件需要交給那層來處理。首先 事件都是從 activity傳遞到view在傳遞到子view 由上到 下傳遞,activity是董事長 view是經理 子view是員工 事件有三種 攔截消費分發 假如乙個任...