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这样滴

你可能感兴趣的:(2020-10-21)