所谓点击事件的事件分发,其实就是对MotionEvent实践的分发过程,即当一个MotionEvent产生了以后,系统需要把这个时间传递给一个具体的VIew,而这个传递的过程就是分发的过程.点击事件的分发过程由三个很重要的方法来共同完成的,分为:dispatchTouchEvent.onInterceptTouchEvent.onTouchEvent.
public boolean dispatchTouchEvent(MotionEvent ev)
public boolean onInterecptTouchEvent(MotionEvent event)
public boolean onTouchEvent(MotionEvent event)
它们三者关系大致如下伪代码:
public boolean dispatchTouchEvent(MotionEvent ev){ boolean consume = false; if(onInterecptTouchEvent(ev)){ consume = onTouchEvent(ev); }else{ consume = child.dispatchTouchEvent(ev); } return consume; }