**
view的事件分发:
**
事件分发需要View的三个重要方法来共同完成:
public boolean dispatchTouchEvent(MotionEvent event)
事件分发,如果一个MotionEvent传递给了View,那么dispatchTouchEvent方法一定会被调用返回true表示事件被消费,本次的事件终止。
返回值:false表示View以及子View均没有消费事件,将调用父View的onTouchEvent方法;
public boolean onInterceptTouchEvent(MotionEvent ev)
事件拦截,当一个ViewGroup在接到MotionEvent事件序列时候,首先会调用此方法判断是否需要拦截。特别注意,这是ViewGroup特有的方法,View并没有拦截方法
返回值:是否拦截事件传递,返回true表示拦截了事件,那么事件将不再向下分发而是调用View本身的onTouchEvent方法。返回false表示不做拦截,事件将向下分发到子View的dispatchTouchEvent方法。
public boolean onTouchEvent(MotionEvent ev)
真正对MotionEvent进行处理或者说消费的方法。
返回值:返回true表示事件被消费,本次的事件终止。返回false表示事件没有被消费,将调用父View的onTouchEvent方法
*MotionEvent:*我们对屏幕的点击,滑动,抬起等一系的动作都是由一个一个Motio