android view 3 事件處理流程

2021-09-02 15:55:56 字數 731 閱讀 4109

一、分發

當乙個motionevent產生後,系統要把這個事件傳遞給具體的view,這個傳遞過程就是分發。

1.public boolean onintercepttouchevent(motionevent event)

返回boolean結果,表示是否攔截處理此事件,預設返回false表示不攔截。只有viewgroup才有此方法,view沒有,所以view收到後會立即執行ontouchevent。

2.public boolean ontouchevent(motionevent event)

自己去處理這個事件,返回結果表示是否消耗此事件。view的ontouchevent預設消耗此事件。

3.public boolean dispatchtouchevent(motionevent event)

繼續往子元素分發事件,返回結果表示是否消耗此事件

偽**如下

public boolean dispatchtouchevent(motionevent event)else{

consume = child.dispatchtouchevent(event);

return consume;

分發會從activity開始,經過phonewindow,decorview,再傳入下面的元素中。

二、處理

如果view的ontouchevent返回了false,表示不處理。就會調上層的ontouchevent,上層不處理,繼續往上反饋。

Android view點選事件

import android.os.bundle import android.view.keyevent import android.view.motionevent import android.view.view import android.view.view.onclicklistene...

Android view事件分發總結

事件分發的關係偽 public boolean dispatchtouchevent motionevent ev else return consume 1 一般情況是不對dispatchtouchevent 進行改寫的,通常是改寫onintercepttouchevent ontoucheven...

事件(3) 事件物件

在觸發dom上的某個事件的時候,會產生乙個事件物件event,這個物件包含著所有與事件有關的資訊,包括導致事件的元素 事件型別等,所有的瀏覽器都支援event物件,但支援方式不同。只有在事件處理程式執行期間,event物件才會存在,一旦執行完成就會別銷毀 1 dom中的事件物件 var btn do...