1.事件分发:dispatchTouchEvent(MotionEvent ev)
由父View向子View传递事件。
return true,事件会分发给当前View,并由dispatchTouchEvent()进行消费,同时事件停止传递。
return false,将事件返回给Activity或者父View的onTouchEvent()进行消费。
super.dispatchTouchEvent(),事件会分发给当前View的onInterceptTouchEvent()方法。
2.事件拦截:onInterceptTouchEvent(MotionEvent ev)
事件由当前View的dispatchTouchEvent()进行分发。
return true,拦截事件,并交由当前View的onTouchEvent处理。
return false,不拦截事件,当前View的事件会被传递到下层子View上,再由子View的dispatchTouchEvent()来进行事件分发。
super.onInterceptTouchEvent(),同return false。
3.事件响应:onTouchEvent(MotionEvent ev)
1)当前View dispatchTouchEvent()返回super.dispatchTouchEvent(),并且onInterceptTouchEvent()返回true时,当前View的onTouchEvent()会被掉用
2)事件一直被放行到最上层View,则会调用当前View的onTouchEvent()事件
return false,事件会从当前View向上传递,并且由父View的onTouchEvent()来接收return true,消费该事件super.onTouchEvent() 默认处理事件的逻辑与return false相同