这三个方法的执行顺序:
dispatchTouchEvent()>onInterceptTouchEvent(MotionEvent event) >onTouchEvent(MotionEvent event)
1)public booleandispatchTouchEvent(MotionEvent ev) 这个方法用来分发TouchEvent
2)public boolean onInterceptTouchEvent(MotionEvent ev) 这个方法用来拦截TouchEvent
3)public boolean onTouchEvent(MotionEvent ev) 这个方法用来处理TouchEvent
详情如图:
一个最简单的屏幕触摸动作触发了一系列Touch事件:ACTION_DOWN->ACTION_MOVE->ACTION_MOVE->ACTION_MOVE…->ACTION_MOVE->ACTION_UP
*当你想让所有的父控件都不要拦截子控件的事件
可在分发事件时调用getParent().requestDisallowInterceptTouchEvent(true);