Android View的事件分發機制

public boolean dispatchTouchEvent(MotionEvent event)spa

經過方法名咱們不難猜想,它就是事件分發的重要方法。那麼很明顯,若是一個MotionEvent傳遞給了View,那麼dispatchTouchEvent方法必定會被調用! 返回值:表示是否消費了當前事件。多是View自己的onTouchEvent方法消費,也多是子View的dispatchTouchEvent方法中消費。返回true表示事件被消費,本次的事件終止。返回false表示View以及子View均沒有消費事件,將調用父View的onTouchEvent方法事件

public boolean onInterceptTouchEvent(MotionEvent ev)io

事件攔截,當一個ViewGroup在接到MotionEvent事件序列時候,首先會調用此方法判斷是否須要攔截。特別注意,這是ViewGroup特有的方法,View並無攔截方法 返回值:是否攔截事件傳遞,返回true表示攔截了事件,那麼事件將再也不向下分發而是調用View自己的onTouchEvent方法。返回false表示不作攔截,事件將向下分發到子View的dispatchTouchEvent方法。event

public boolean onTouchEvent(MotionEvent ev)方法

真正對MotionEvent進行處理或者說消費的方法。在dispatchTouchEvent進行調用。 返回值:返回true表示事件被消費,本次的事件終止。返回false表示事件沒有被消費,將調用父View的onTouchEvent方法di

相關文章
相關標籤/搜索