每次遇到滑动冲突都头大,带你寻找事件冲突的根源
分发的什么事件?
事件分发的关键方法?
onTouch、onClick之间的关系?
了解冲突原因,如何解决冲突?
MotionEvent
事件 | 简介 |
---|---|
ACTION_DOWN | 手指 初次接触到屏幕 时触发 |
ACTION_MOVE | 手指 在屏幕上滑动时触发,会多次触发 |
ACTION_UP | 手指 离开屏幕 时触发 |
ACTION_CANCEL | 事件 被上层拦截 时触发 |
事件分发、拦截与消费
类型 | 相关方法 | Activity | ViewGroup | View |
---|---|---|---|---|
事件分发 | dispatchTouchEvent | √ | √ | √ |
事件拦截 | onInterceptTouchEvent | X | √ | X |
事件消费 | onTouchEvent | √ | X | √ |
总流程:

解决冲突:
-
内部拦截法
-
外部拦截法