android 事件分发机制

45 阅读1分钟

事件简介

事件类型

事件分发

  1. Activity 的 dispatchTouchEvent 方法

  2. PhoneWindow#superDispatchTouchEvent 调用了 DecorView#superDispatchTouchEvent

  3. DecorView#superDispatchTouchEvent 调用了 ViewGroup#dispatchTouchEvent

  4. ViewGroup#dispatchTouchEvent 重写了 View#dispatchTouchEvent

  5. View#dispatchTouchEvent

  6. View#onTouchEvent

事件处理

默认 View 类中的 dispatchTouchEvent 方法

事件处理顺序:onTouch -> onTouchEvent -> Onclick

事件流程

  1. 判断是否拦截子view
  2. 分发事件,判断哪个子view处理事件
  3. 执行事件 (当前view进行处理 或者 子view进行处理)