摘自《Android开发艺术探索》
点击事件的传递规则(是有下面三个重要的方法共同完成):
//事件分发,返回值代表是否消耗当前事件
public boolean dispatchTouchEvent(MotionEvent ev)
//事件拦截,返回值代表是否拦截当前事件
public boolean onInterceptTouchEvent(MotionEvent ev)
//事件处理,返回值代表是否处理当前事件
public boolean onTouchEvent(MotionEvent ev)
三者的关系(通过伪代码展示三者的关系):
public boolean dispatchTouchEvent(MotionEvent ev){
boolean consume = false;
if(onInterceptTouchEvent(ev))
consume = onTouchEvent(ev);
else
consume = child.dispatchTouchEvent(ev);
return consume ;
}