Android Touch事件传递详解,kotlin中文

本文详细解释了Android中触摸事件的传递机制,通过苹果分发的比喻,阐述了事件从Activity到ViewGroup再到View的传递过程,以及如何通过dispatchTouchEvent、onTouchEvent和onInterceptTouchEvent方法控制事件的分发、拦截和处理。同时,通过自定义ViewGroup和View的实例代码,展示了事件处理的具体实现。
摘要由CSDN通过智能技术生成

从图中可以看出事件先是从Activity->ViewGroup->View这样传递下去,事件处理则是从View->ViewGroup->Activity。可以理解为有两个方向。

三、touch事件传递形象说明


(1)touch事件事件传递形象的理解可以这么认为:比如我有一个苹果(touch),我可以自己吃也可以分发(dispatchTouchEventon)给孩子吃(TouchEvent)。如果我不吃那么我就返回给我的父亲处理,如果我分发给孩子那么孩子,那么这个苹果交给我的孩子他有自己独立的权利进行处理,他可以继续分给他的孩子就是我的孙子进行处理,也可以自己吃了吃掉,如果我的孙子不处理他也可以返回给他的父亲就是我的孩子处理,我的孩子也有相同的权利进行处理。

(2)接着上面其实这个事件(苹果)的传递是从上往下,然后再由下往上传递,中途如果有人消费这个事件(吃掉苹果),那么这个事件就结束(苹果没有了),就结束传递。

(3)事件(苹果)传递,不像我们人一样要害羞要矜持,推来推去,比如这个苹果孩子不分发给他的孩子但是他自己又不想消费(吃掉)而是返回给我,那么我就是只有两个选择要么消费(吃掉)要么返回给我的父类进行处理,不能推来推去,就是不能孩子给我了事件(苹果),我又来分发给孩子,这是不行的,这样就是个死循环。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值