事件分發的關係偽**:
public boolean dispatchtouchevent(motionevent ev)else
return consume;
}
1、一般情況是不對dispatchtouchevent()進行改寫的,通常是改寫onintercepttouchevent、ontouchevent以到達攔截事件的目的,當乙個控制項對某個事件攔截成功了,那麼接下來同一系列的事件都將會有該控制項來處理,此後onintercepttouchevent就不會被呼叫了
是否將事件交個某個控制項處理,關鍵就是看actiondown了,如果截獲了actiondown,那麼接下來的事件都會由該控制項處理,否則將交由其他控制項處理。
2、關於ontouch()、ontouchevent()、onclick()的優先順序問題(ontouch()在ontouchelistener()中設定,onclick()在onclicklistenter()中設定)
ontouch>ontouchevent>onclick
只有當ontouch反會false時,ontouchevent才會被呼叫,只有當ontouchevent返回false時,onclick才會被呼叫。
3、事件的傳遞順序:activity->window->view
4、viewgroup預設不攔截任何事件,即onintercepttouchevent()方法返回false。view沒有onintercepttouchevent()方法,直接掉用ontouchevent()方法,預設是會對事件進行消耗的,即返回true。
5、view的enable屬性不會對ontouchevent()的返回值產生影響,但clickable、longclickable屬性會。
Android view點選事件
import android.os.bundle import android.view.keyevent import android.view.motionevent import android.view.view import android.view.view.onclicklistene...
事件分發機制
android中的事件型別分為按鍵事件和螢幕觸控事件,touch事件是螢幕觸控事件的基礎事件,有必要對它進行深入的了解。乙個最簡單的螢幕觸控動作觸發了一系列touch事件 action down action move action move action move.action move acti...
Android Touch事件分發
事件 viewgroup view有子元素 view無子元素 activity 方法功能 public boolean dispatchtouchevent motionevent ev yy ny分發 public boolean onintercepttouchevent motionevent...