- 基本事件
一般只需要复写只需要重写View.onTouchEvent(e)
2.事件分发
- onTouchEvent 传递顺序为子View -> 父View ,可以return true消耗事件,此事件在touchDown中已确定,如果消耗后,后序不会再传递后续事件
- 事件拦截 ViewGroup.onInterceptTouchEvent ,执行顺序为父View -> 子View, return true拦截事件,事件将直接调用自己的onTouchEvent, 不会调用子View的onTouchEvent,之后事件不会再调用onInterceptTouchEvent,接管事件时会给子View Cancle操作
- requestDisallowInterceptTouchEvent() 调用父类此方法让父View不能调用拦截,此方法为递归方法,会一直往上调用,每一级都不会再拦截,仅对单事件流有效,可多次调用
3.总调方法
dispatchTouchEvent() 上面分发事件的逻辑在此方法中实现,为根view递归向子View调用。