Android事件分发机制详解

事件的定义

定义:当用户触摸屏幕时。将产生的触摸行为(Touch事件)

  • 事件的类型,有四种
    MotionEvent.ACTION_DOWN 手指刚接触屏幕
    MotionEvent.ACTION_UP 手指从屏幕松开
    MotionEvent.ACTION_MOVE 手指在屏幕上滑动
    MotionEvent.ACTION_CANCEL 非人为因素取消

事件序列

正常情况下,一次手指触摸屏幕的行为会发出一些列点击事件
1.点击屏幕立即松开,事件序列化为DOWN->UP
2.点击屏幕滑动一会再松开,事件序列为DOWN->MOVE->…->MOVE->UP
在这里插入图片描述

事件分发对象

在这里插入图片描述

事件分发主要方法

在这里插入图片描述

事件分发-Activity

在这里插入图片描述

事件分发——ViewGroup

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

事件分发-View

View的事件分发

在这里插入图片描述

View的事件消费

在这里插入图片描述

事件分发模型

在这里插入图片描述

事件分发结论

  • 一个事件序列从手指接触屏幕到手指离开屏幕,在这个过程中产生一系列事件,以DOWN事件开始,中间含有不定数的MOVE事件,以UP事件结束
  • 正常情况下,一个事件序列只能被一个View拦截并且消耗
  • 某个View一旦决定拦截,那么这个事件序列都将由它的onTouchEvent处理,并且它de
    onInterceptTouchEvent不会再调用
  • 某个View一旦开始处理事件,如果它不消耗ACTION——DOWN事件(onTouchEvent返回false),那么同一事件序列中其他事件都不会再交给它处理。并且重新交由它的父元素处理(父元素onTouchEvent被调用)S

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gujunhe

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值