Android进阶知识:事件分发与滑动冲突(二)
接着看代码块3,在这段很长的代码里,首先一个if
中判断了该事件是否满足没有被拦截和被取消,之后第二个if
判断了事件类型是否为DOWN
,满足了没有被拦截和取消的DOWN
事件,接下来ViewGroup才会循环其子View找到点击事件在其内部并且能够接受该事件的子View,再通过调用dispatchTransformedTouchEvent
方法将事件分发给该子View处理,返回true说明子View成功消费事件,于是调用addTouchTarget
方法,方法中通过TouchTarget.obtain
方法获得一个包含这View的TouchTarget
节点并将其添加到链表头,并将已经分发的标记设置为true
。
接下来看代码块4:
// Dispatch to touch targets.//走到这里说明在循环遍历所有子View后没有找到接受该
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
iOS 算法之排序、查找、递归
排序 冒泡排序(依次循环旁边的比较放到后边去) /** 最好时间复杂度是O(n) 最坏时间复杂度是O(n^2) 平均时间复杂度:O(n^2) 平均空间复杂度:O(1) */ - (void)foolSortArray:(NSMutableArray *)array { for (int i = 0; i < array.count-1; i++) { for (int j = 0; j < array.count-i-1; j++) { if (array[j] > array[j+1]) { id tmp = array[j]; array[j] = array[j+1]; array[j+1] = tmp; } } } } 选择排序(拿前边的和后边的依次比较放到前边去,就是先排好前边的) /** 最好时间复杂度是O(n^2) 最坏时间复杂度是O(n^2) 平均时间复杂度:O(n^2) 平均空间复杂度:O(1) */ - (void)selectSortArray:(NSMutableArray *)array { for (int i = 0; i < ar...
- 下一篇
小公司程序员的编程水平与BAT大厂到底有多大差距?
BAT的牛人多,普通人也多,虽然他们不是每个人都能达到令人仰望的技术水平,但毕竟平台高,所以眼光会变得宽阔;代码要求更为严格,所以普通的程序员也会被逼变得更优秀;身边的牛人多,普通的程序员也会受到影响,提升的更快 正好,小编今天看到一篇文章,是讲去阿里的面试经历,也分享给大家,看看自己离着【进】阿里还有多大的差距。 Activity 说下Activity生命周期 ? Activity A 启动另一个Activity B 会调用哪些方法?如果B是透明主题的又或则是个DialogActivity呢 ? 说下onSaveInstanceState()方法的作用 ? 何时会被调用? 说下 Activity的四种启动模式、应用场景 ? 了解哪些Activity常用的标记位Flags? 说下 Activity跟window,view之间的关系? 横竖屏切换的A
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- 设置Eclipse缩进为4个空格,增强代码规范
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Mario游戏-低调大师作品
- CentOS8编译安装MySQL8.0.19
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Hadoop3单机部署,实现最简伪集群