Android 学习笔记(十二):安卓中的事件分发机制

一、事件分发的对象是谁

答:点击事件(Touch事件)

  • 定义
    当用户触摸屏幕时(View或ViewGroup派生的控件),将产生点击事件。Touch事件的相关细节(发生触摸的位置。时间等)被封装成MotionEvent对象

  • 事件类型(4种)

事件类型具体动作
MotionEvent.ACTION_DOWN按下View(所有事件的起点)
MotionEvent.ACTION_UP抬起View(与Down相对应)
MotionEvent.ACTION_MOVE滑动View
MotionEvent.ACTION_CANCEL结束事件(非人为结束)
  • 事件列
    从手指解除屏幕至手指离开屏幕,这个过程产生的一系列事件。
    在这里插入图片描述
    即当一个点击事件(MotionEvent)产生后,系统需把这个事件传递一个具体的View去处理。

二、事件分发的本质

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

三、事件在哪些对象之间进行传递

答:Activity、ViewGroup、View

四、事件分发的顺序

答:Activity -> ViewGroup -> View。即一个点击事件发生后,事件先传到Activity、再传到ViewGroup、最终传到View。

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

答:

方法作用调用时刻
dispatchTouchEvent()分发(传递)点击事件当点击事件能够传递给当前View时,该方法就会被调用
onTouchEvent()处理点击事件在dispatchTouchEvent()方法内部调用
onInterceptTouchEvent()判断是否拦截了某个事件,只存在于ViewGroup中,普通的View没有该方法在ViewGroup的dispatchTouchEvent()内部调用
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值