一、分發
當乙個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...