Android事件分发之ACTION_MOVE与ACTION_UP的传递机制

本文深入探讨了Android事件分发机制中的ACTION_MOVE和ACTION_UP的传递原理。通过分析源码,揭示了mFirstTouchTarget变量在事件分发中的关键作用,它是单链表结构,用于记录处理Down事件的子View。当Move或Up事件到来时,系统会依据这个链表进行事件分发。在多指触控场景下,mFirstTouchTarget链表能存储多个处理事件的子View。
摘要由CSDN通过智能技术生成

引言

关于Android事件分发机制网上相关的文章很多,多数都是一些较为基础并且重复的内容。本系列将从源码带领大家探究一些事件分发机制的“细枝末节”。但是在此之前,还是简单重复一下基础内容。即事件分发的三个重要方法:
事件传递给当前view时,dispatchTouchEvent方法会被调用。在方法内部会判断是否拦截事件onInterceptTouchEvent及如何处理事件onTouchEvent
一个完整的事件序列以Down开始,中间经过一个或者多个Move,最后以Up结束。
用一张图来总结ViewGroup的Down事件传递机制:

True
True
Flase
True
False
False
True
False
dispatchTouchEvent
onInterceptTouchEvent
mOnTouchListener.onTouch
End
子view dispatchTouchEvent
End
onTouchEvent
End
  • 7
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值