一张图看懂android事件分发原理
废话不多说,直接上图
图解:android中事件分发的起始点是Activity,有Activity里的Detorview通过DispatchTouchEvent开始分发,如图假设一个DOWN,MOVE,UP事件中的DOWN事件传入,通过Detorview的DispatchTouchEvent传到某一个ViewGroup中,ViewGroup也会经过DispatchTouchEvent分发事件,在View树中的分发无非有几个方向,它的父节点,它自己,它的子节点,它的兄弟节点,其中兄弟节点是不可能出现的情况,在树中,兄弟节点是不会有连接点的,所以我们可以看到图中父节点的分发通过在DispatchTouchEvent函数中返回false来搞定,它自己通过返回true来搞定,至于它的子节点可能会复杂一些,它还会通过本身的OnInterceptTouchEvent来分发事件,其本质原因在于在该事件设计中DispatchTouchEvent本身只负责单一事件的分发,而OnTouchEvent会负责通过分析多个事件确定这多个事件的行为,比如Onclick这样一个行为是由DOWN事件和UP事件组成的。OnInterceptTouchEvent被设计出来就是为了在某些特定的场景下,让开发者可以灵活生成由多个事件组成的行为。最后事件会分发到对应的View上,就会按照图右边执行的流程执行下去了。
一张图看懂android事件分发原理相关推荐
- 厉害!40 张图看懂分布式追踪系统原理及实践
作者 | 码海 来源 | 码海 在微服务架构中,一次请求往往涉及到多个模块,多个中间件,多台机器的相互协作才能完成. 这一系列调用请求中,有些是串行的,有些是并行的,那么如何确定这个请求背后调用了哪些 ...
- 40张图看懂分布式追踪系统原理及实践
前言 在微服务架构中,一次请求往往涉及到多个模块,多个中间件,多台机器的相互协作才能完成.这一系列调用请求中,有些是串行的,有些是并行的,那么如何确定这个请求背后调用了哪些应用,哪些模块,哪些节点及调 ...
- 传递给系统调用的数据区域太小怎么解决_40张图看懂分布式追踪系统原理及实践...
作 者:码海 原文链接:https://mp.weixin.qq.com/s/U-8ttlVCfYtjEPOWKBHONA 前言 在微服务架构中,一次请求往往涉及到多个模块,多个中间件,多台机器的相互 ...
- 一篇文章一张思维导图看懂Android学习最佳路线
一篇文章一张思维导图看懂Android学习最佳路线 先上一张android开发知识点学习路线图思维导图 Android学习路线从4个阶段来对Android的学习过程做一个全面的分析:Android初级 ...
- 一篇文章彻底搞懂Android事件分发机制
本文讲的是一篇文章彻底搞懂Android事件分发机制,在android开发中会经常遇到滑动冲突(比如ScrollView或是SliddingMenu与ListView的嵌套)的问题,需要我们深入的了解 ...
- 开源项目许可证相关-一张图看懂几种开源许可证
常见的几种许可 开源许可证允许每个人出于任何目的使用.修改和共享许可软件,前提是要保持软件的来源和开放性.以下许可证从要求条件严苛程度递减排序,从最严苛(GNU AGPLv3)到没有条件(未许可).请 ...
- 一张图看懂微服务架构路线
目录 一张图看懂微服务架构路线 我为什么选择微服务架构? 微服务架构路线 基本思路 Docker 容器编排 Docker 容器管理 API网关 负载均衡 服务发现 事件总线 日志记录 监控和警报 分布 ...
- 一张图看懂图像识别算法发展历史
一张图看懂图像识别算法发展历史
- 【转】几张图看懂列式存储
几张图看懂列式存储 转载于:https://www.cnblogs.com/apeway/p/10870211.html
最新文章
- Git统计个人提交代码行数
- day_06、面向对象
- 怎么用计算机发出音乐声,解决方案:计算机技巧-如何使显示器的内置扬声器发出声音...
- 来看看程序员们是怎么自黑的
- 【小安翻唱】Dreams-黑之契约者 双蛋快乐~顺便来拉票咯!
- 超详细CookieSession的原理与用法
- Boosting原理学习
- 【案例】CRM客户管理系统的登录模型
- 水平线标记的用法和属性
- 福利彩票36选7模拟程序
- 深度揭秘:伪基站短信诈骗产业传奇始末!
- 使用LumaQQ来开发QQ机器人
- matlab飞机飞行
- ie浏览器读取本地文件并上传
- 创业的捷径!打造黄金人脉!
- 12.0 自定义SystemUI下拉状态栏和通知栏视图(二十)之锁屏通知布局
- 每日一篇(1):判断文件夹中是否有同名文件并处理重名问题
- Django学习笔记(二):MTV架构学习及使用步骤
- cocoaPods 查看当前源
- Python教你app如何限时试用