android 事件分发

来源:互联网 发布:炒黄金 知乎 编辑:程序博客网 时间:2024/06/08 14:33

事件分发流程图

1.事件分发的对象

  • 当用户触摸屏幕的时候,会触发activity中(view或者viewgroup的派生类)Touch事件,将产生点击事件.
  • Touch事件相关细节(发生触摸的位置、时间、历史记录、手势动作等)被封装成MotionEvent对象.

- 主要发生的Touch事件有四种:

MotionEvent.ACTION_DOWN(事件的开始阶段:按下当前的view)MotionEvent.ACTION_MOVE(滑动view,所触发的事件)MotionEvent.ACTION_CANCEL(非人为所意外取消的事件)MotionEvent.ACTION_UP(抬起所触发的事件)
  • 事件分发的过程由:

dispatchTouchEvent() 分发传递的事件。 当点击事件下发给当前的view时,该方法会被调用。
onInterceptTouchEvent() 判断是否拦截当前的事件(view是没有该方法的),
onTouchEvent(),处理当前的事件

  • 事件的分发调用顺序是:Activity->viewGroup->view