深色模式
Android 事件分发之 MotionEvent 与 TouchTarget
MotionEvent
MotionEvent 的基本类型:
ACTION_DOWN
ACTION_MOVE
ACTION_UP
多指触控相关:
ACTION_POINTER_DOWN
ACTION_POINTER_UP
另外还有:
ACTION_CANCEL
ACTION_OUTSIDE
- ...
在多指触控中,每一个MotionEvent内部都维护有所有触控点的信息。跟踪一个触控点必须是依靠一个触控点的id,而不是他的索引。
TouchTarget
TouchTarget 是一个事件序列的消费者,在 ViewGroup 的事件分发过程中,有寻找 TouchTarget 的过程。
源码:
java
private static final class TouchTarget {
// target 相关的 view
public View child;
// 当前 target 所绑定的 pointerId,利用2进制整数来判断
public int pointerIdBits;
// 使用链表维护多个 target
public TouchTarget next;
//...
}