点击事件的传递规则 点击事件的分发,其实就是对MotionEvent事件的分发过程,即当一个MotionEvent产生了以后,系统需要把这个事件传递给一个具体的View,这个传递过程就是分发。 三个重要的方法: public boolean dispatchTouchEvent(MotionEvent ev) 进行事件的分发 public boolean onInterceptTouchEvent(MotionEvent ev) 用来判断是否拦截某个事件 public boolean onTounchEvent(MotionEvent ev) 用来处理点击事件
上述三个方法的关系可用如下伪码表示
public boolean dispatchTouchEvent(MotionEvent e){ boolean result=false; if(onInterceptTouchEvent(e)){ //如果当前View截获事件,那么事件就会由当前View处理,即调用onTouchEvent() result=onTouchEvent(e); }else{ //如果不截获那么交给其子View来分发 result=child.dispatchTouchEvent(e); } return result; }http://blog.csdn.net/lmj623565791/article/details/38960443中的例子可以很好的看到传递过程