Android巩固之事件分发机制
https://www.cnblogs.com/liaojie970/p/5869152.html
onTouchEvent是真正用来进行业务逻辑处理的地方,返回true表示已经将该事件消费,返回false表明事件继续传递。
onInterceptTouchEvent是用来进行判断是否需要对事件进行拦截从而阻止其继续往子组件传递的,返回false表示无需拦截,则递归的调用子组件的dispatchTouchEvent
方法;返回true表示需要拦截,则直接调用本组件的onTouchEvent方法进行处理。
在父组件dispatchTouchEvent中有可能会调用三个方法:
1、本组件的onInterceptTouchEvent
2、子组件的dispatchTouchEvent
3、本组件的onTouchEvent
ViewGroup中dispatchTouchEvent()具体的执行逻辑:
1、首先执行本组件的onInterceptTouchEvent。如果返回false,表明无需拦截,则调用第二个方法,即子组件的dispatchTouchEvent方法;如果返回true,无需向子组件
传递,则直接调用本组件的onTouchEvent方法
2、第一步中如果需要向子组件传递事件。如果递归调用子组件的dispatchTouchEvent返回false,则调用本组件的onTouchEvent方法;如果返回true,则无需调用本组件的
onTouchEvent方法
3、根据前两步的执行结果,将该dispatchTouchEvent的返回值返回给父组件的dispatchTouchEvent方法。
转载于:https://www.cnblogs.com/Oldz/p/11273546.html
Android巩固之事件分发机制相关推荐
- Android View的事件分发机制和滑动冲突解决方案
这篇文章会先讲Android中View的事件分发机制,然后再介绍Android滑动冲突的形成原因并给出解决方案.因水平有限,讲的不会太过深入,只希望各位看了之后对事件分发机制的流程有个大概的概念,并且 ...
- Android View的事件分发机制解析
作者:网易·周龙 最近刚看完android-Ultra-Pull-To-Refresh下拉刷新的源码,发现在写自定义控件时,对于View的事件的传递总是搞不太清楚,而View事件的分发机制,又是解决可 ...
- Android ViewGroup事件分发机制
理~ 1.案例 首先我们接着上一篇的代码,在代码中添加一个自定义的LinearLayout: [java] view plaincopy package com.example.zhy_event03 ...
- android 按键会触发ontouch吗?_这次,我把Android事件分发机制翻了个遍
一名优秀的Android开发,需要一份完备的 知识体系,在这里,让我们一起成长为自己所想的那样~. 这次说下Android中的事件分发机制 从开始点击屏幕开始,就会产生从Activity开始到deco ...
- Android系统分析之带着问题看事件分发机制
Android 触摸事件分发机制? Android系统分析之带着问题看事件分发机制 一 事件分发机制 1 什么是事件分发机制? 1.1 什么是事件? 答:当用户触摸屏幕时,每一次的点击,按下,移动,抬 ...
- 《Android深入透析》之Android事件分发机制
<Android深入透析>之Android事件分发机制 <Android深入透析>之Android事件分发机制 一. Android分发机制概述: Android如此 ...
- 深入透析Android事件分发机制
一. Android分发机制概述: Android如此受欢迎,就在于其优秀的交互性,这其中,Android优秀的事件分发机制功不可没.那么,作为一个优秀的程序员,要想做一个具有良好交互性的应用,必须透 ...
- Android6.0源码解读之ViewGroup点击事件分发机制
本篇博文是Android点击事件分发机制系列博文的第三篇,主要是从解读ViewGroup类的源码入手,根据源码理清ViewGroup点击事件分发原理,明白ViewGroup和View点击事件分发的关系 ...
- 安卓自定义View进阶-事件分发机制原理【转自 app架构师 微信公众号】
注意:本文中所有源码分析部分均基于 API23(Android 6.0) 版本,由于安卓系统源码改变很多,可能与之前版本有所不同,但基本流程都是一致的. 为什么要有事件分发机制? 安卓上面的View是 ...
最新文章
- leetcode 3. Longest Substring Without Repeating Characters 最长非重复子串的长度 滑动窗口法
- RabbitMQ学习总结(4)——分发任务在多个工作者之间实例教程
- android系统可以破吗,你的手机系统破到什么程度?一键查安卓漏洞
- 计算机二级办公室软件应用选择题,计算机二级,办公软件高级应用技术有没有选择题和判断题的...
- UVA 10976 Fractions Again?!【暴力枚举/注意推导下/分子分母分开保存】
- AngularJS(1)——入门学习
- js将时间戳格式化为HH:ii:ss的格式
- multi source replication mysql,Disabling Multi-Source Replication in MySQL 5.7
- 有了人脸识别和虹膜扫描,指纹传感器是不是就OUT了?究竟哪个更安全?
- 【开发工具】makefile之override的作用
- 最长回文子串-----Manacher算法
- 智汇华云 | 集群自动化部署服务流程之自动化集群配置(上)
- java线程状态、新建状态、运行状态、阻塞状态、等待阻塞、同步阻塞、其他阻塞、死亡状态
- plc原理及应用_PLC编程与应用 适合初学者
- 出去锻炼还是不让数据科学决定
- 计算机的网关地址是什么,什么是网关 网关地址是什么
- iOS-ERROR ITMS-90096
- 服务器的型号规格,云服务器规格型号
- 一文讲解Typescript中工具类型
- Oracle 设置密码复杂度
热门文章
- 2022-2028年中国抗盐粘土行业发展现状调查及前景战略分析报告
- Linux df -h 显示磁盘空间满,但实际未占用满——问题分析
- SpringBoot中实现quartz定时任务
- 【JavaScript总结】JavaScript语法基础:数据类型
- Redis常见面试问题汇总及解析
- pytorch学习 中 torch.squeeze() 和torch.unsqueeze()的用法
- com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@4e47db1f -- Acquisition Attempt Failed!!!
- 标题 相机标定(Camera calibration)原理和步骤
- CentOS7 service network start命令启动时报错解决方法
- 【CV】吴恩达机器学习课程笔记第10章