Android面试题——掘金-Framework之View的事件处理机制(2.6)
一 概述
1 | Android 的 View 事件处理机制 主要涉及 触摸事件(TouchEvent)、事件分发(Dispatch)、 |
二 面试题解答(仅供参考)
2.1 事件分发机制(事件传递流程)是什么?
1 | 1.Android 事件处理涉及 三大核心方法: |
2.2 事件分发的流程是什么?
1 | 1.Activity 先接收事件,调用 dispatchTouchEvent() 传递给 DecorView。 |
2.3 事件分发规则是什么?
1 | 1.Activity 默认会把事件交给 DecorView 处理。 |
2.4 onInterceptTouchEvent() 有什么作用?
1 | onInterceptTouchEvent() 主要用于 ViewGroup,决定是否拦截子 View 的事件: |
2.5 onTouchEvent() 处理事件的规则是什么?
1 | 1.onTouchEvent() 主要由 View 处理: |
2.6 onTouchListener 和 onTouchEvent() 谁先执行?
1 | 1.谁先执行 |
2.7 如何保证 View 能接收到 MOVE 和 UP 事件?
1 | 1.概念 |
2.8 ViewGroup 如何拦截特定子 View 的触摸事件?
1 | 1.概念 |
2.9 事件分发中,哪些情况会导致事件丢失?
1 | View 没有消费 DOWN 事件,导致 MOVE 和 UP 事件不会传递。 |
2.10 requestDisallowInterceptTouchEvent() 有什么作用?
1 | 1.概念 |
2.11 总结
1 | 1.事件分发流程:dispatchTouchEvent() -> onInterceptTouchEvent() -> onTouchEvent()。 |
三 参考
- 掘金—知识库的大纲