2020-10-21

事件分发

1. 事件分发的对象是谁?

点击事件(Touch事件)

2. 定义

当用户触摸屏幕时(View 或 ViewGroup派生的控件),将产生点击事件(Touch事件)

注:Touch事件的相关细节(发生触摸的位置、时间等)被封装成MotionEvent对象

3.事件类型:


4. 事件分发的本质是什么?

将点击事件(MotionEvent)传递到某个具体的View & 处理的整个过程。即 事件传递的过程 = 分发过程

5. 事件在哪些对象之间进行传递?

Activity、ViewGroup、View

6. 组成

Android的UI界面由Activity、ViewGroup、View 及其派生类组成

7. 事件分发的顺序

 事件传递的顺序:Activity -> ViewGroup -> View

8. 事件分发过程由哪些方法协作完成?

dispatchTouchEvent() 、onTouchEvent()、

onInterceptTouchEvent(),具体介绍如下:


还有一个问题题:

为什么会有事件分发机制

安卓上面的View是树形结构的,View可能会重叠在一起,当我们点击的地方有多个View都可以响应的时候,这个点击事件会给谁呢?为了解决这一问题,就有了事件分发机制

其实得出结论就是:onTouch->onTouchListener->onTouchEvent->onClick->onClickListener这样滴

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。