Android事件分发机制个人总结

Android 事件分发机制详解/ 及Activity启动流程浅谈 目前网上的事件分发机制文章很多,可能大家看了很多,还是很懵逼,这篇文章是我自己总结的事件分发机制,提取了在事件分发机制中,最精华的部分,如果对事件分发还是不太清楚,可以看看这篇文章。 阅读详情

前言:关于Android点击事件的分发机制的详解在我转载的上篇文章Android事件分发机制详解就能看到,很全面也很详细。但是由于篇幅也过于长了,想要完全了解需要一定的时间,于是自己便制作了几个流程图,算是自我的一个小总结。


事件分发机制的三个重要方法

1、dispatchTouchEvent(MotionEvent ev) —– 用于事件的分发。
2、onInterceptTouchEvent(MotionEvent ev) —– 用于事件的拦截,在dispatchTouchEvent()中调用,只有ViewGroup 中有该方法。
3、onTouchEvent(MotionEvent ev) —– 用于处理点击事件,在dispatchTouchEvent()中调用。

事件分发的顺序

事件传递的顺序:Activity -> ViewGroup -> View

事件分发业务流程

Down后续事件流程

1、第一个Down事件传递

2、Cancel 事件传递

3、后续Move事件传递


至此,关于Android 事件分发机制的流程就完成了,想对分发机制有更深了解的可以看上一篇文章。

Android事件分发机制 开始的开始 当我手指触摸到手机屏幕后,给我所见即所得的触控体验,它的背后发生了什么?出于对它的好奇,就有了这篇文章。因为本人不喜欢大段大段的源码分析,所以本文尽量从设计的角度去把把事件分发机制的脉络,少贴源码是我的目标之一,虽然这么说,但当我把文章写完后最后发现依然贴了不少代码,想删减却没法减少,都是很核心的部分。本博客的主要内容如下: 事件分发的整体设计 ViewRootImpl的创建 应用层级的事件分发流程 为了后面更容易的理解事件分发机制,在介绍核心内容前,准备了一些前置知识。 前置知识:View 阅读详情

相关推荐

【Android】View的事件分发机制

`dispatchTouchEvent(MotionEvent event)` 方法是事件分发的入口。 - 每当事件产生时(如点击、滑动),系统会将该事件封装成一个 `MotionEvent` 对象,并通过 `dispatchTouchEvent` 方法传递给根视图(通常是 `Activity` 中的 `DecorView`)。 - 在 `dispatchTouchEvent` 中,事件会根据层级逐层传递给子视图,直到找到可以处理事件的视图为止。 - 若 `dispatchTouchEv

Patrick_yuxuan的博客 1633

Android事件分发机制【最新、最全、最易懂、由浅入深】

Android事件分发流程 = Activity -> ViewGroup -> View即:1个点击事件发生后,事件先传到Activity、再传到ViewGroup、最终再传到ViewActivity对点击事件的分发机制ViewGroup对点击事件的分发机制View对点击事件的分发机制Activity事件分发机制、ViewGroup事件分发机制、View事件分发机制当一个点击事件发生时,从Activity的事件分发开始(),流程总结如下:三者介绍。

丨康有为丨的博客 1万+

Android事件分发机制_activity 事件分发

因为在屏幕上,是分层的,比如是现有窗口,然后有交互界面(Activity),界面中有布局(ViewGroup),布局中有控件(View)。那么如何确定到底该哪个控件来响应处理触摸事件呢,这就要用到事件分发机制了。一般来说,事件传递的顺序是:Activity -> ViewGroup -> View。1个点击事件发生后,事件先传到Activity、再传到ViewGroup、最终再传到 View。

877

Android事件分发机制详解:史上最全面、最易懂

点击事件由哪个对象发出,经过哪些对象,最终达到哪个对象并最终得到处理。这里的对象是指Activity、ViewGroup、View事件分发过程由dispatchTouchEvent() 、onInterceptTouchEvent()和onTouchEvent()三个方法协助完成经过上述3个问题,相信大家已经对Android的事件分发有了感性的认知,接下来,我将详细介绍Android事件分发机制。

w1142203475的博客 1万+

稀疏阵列选型指南:互质阵、嵌套阵、MRA,谁才是你项目里的‘性价比之王’?

本文深入探讨了稀疏阵列技术中的互质阵、嵌套阵和MRA三大架构的工程化选型策略,重点分析了它们在DOA估计、自由度、旁瓣抑制和计算复杂度等核心指标上的表现。通过实际案例和配置示例,为智能天线、声学定位和毫米波雷达等应用场景提供技术选型指南,帮助研发团队在硬件成本与性能之间找到最佳平衡点。

weixin_42525005的博客 488

如何解决Windows系统中缺失oem*.inf文件导致的软件运行问题

本文详细解析了Windows系统中因oem*.inf文件缺失导致软件无法运行的常见问题。文章阐述了oem*.inf文件作为安装信息文件的重要作用,并提供了从精准定位文件路径、安全获取与替换文件的手动修复步骤,到利用专业工具进行一站式修复的完整解决方案。最后,还给出了从软件安装来源、卸载习惯到系统维护等方面的预防措施,帮助用户彻底避免此类问题。

water的专栏 546

Android(复习篇): 事件分发机制

事件分发概念及其流程: 1.事件分发: 通过手指对屏幕的触摸完成整个交互的过程 用户通过屏幕与手机交互的时候,每一次点击、长按、移动等都是一个事件 事件分发机制就是某一个事件从屏幕传递给各个view,由view来使用这一事件(消费事件)或忽略这一事件(不消费),这个整个过程的控制。 2.那么事件分发的对象是谁? 系统把事件封装为MotionEvent对象,事件分发的过程就是MotionE...

手写我对你的温柔 3193

LVI-SAM实战:如何在Ubuntu20.04上快速复现激光-视觉-惯性里程计系统

本文详细解析了在Ubuntu 20.04环境下部署和优化LVI-SAM激光-视觉-惯性里程计系统的全流程。从环境配置、依赖安装到源码编译和实战调参,提供了完整的解决方案和性能优化策略,帮助开发者快速实现厘米级精度的实时位姿估计。

m3n5b7v8c9x的博客 1046

带你深入了解Android的事件分发机制

事件拦截(Event Intercept):事件拦截是指在事件分发过程中,某个ViewGroup可以拦截事件的传递,阻止它传递给子View。Android的事件分发机制是指在Android系统中,如何将用户的触摸事件、按键事件等传递给正确的View进行处理的一套机制。值得注意的是,在编写代码时,需要仔细理解每个方法的作用和调用时机,确保事件的正确传递和处理,避免潜在的问题和冲突。通过重写以上方法,你可以根据自己的需求来实现事件的分发和处理逻辑,例如拦截特定的手势,定制化事件的响应等。

Dakaring的专栏 2680

手把手教你用MATLAB/Simulink模拟微电网潮流方向(附代码下载)

本文提供了一份详细的MATLAB/Simulink微电网潮流仿真实战指南。通过手把手教学,指导读者从零搭建包含光伏、储能和负荷的微电网模型,并模拟并网、孤岛等多种运行场景下的潮流方向变化。文章核心在于利用Simulink实现微电网的动态潮流分析与可视化,帮助工程师深入理解分布式能源系统中的功率平衡与控制策略。

weixin_28314575的博客 106

从零到一:使用阿里云百炼搭建企业级 AI Agent 完全实战手册(2026超详细版)

本文是一份企业级AI Agent构建手册,主要面向企业技术负责人、AI产品经理和后端开发工程师。手册详细介绍了如何在阿里云百炼平台上搭建企业智能体应用的全流程,包括环境准备、知识库构建、智能体创建、工具集成、工作流编排等核心环节。重点内容包括: 准备工作:阿里云账号注册、百炼服务开通、免费额度领取、API Key管理 知识库构建:文档格式要求、内容优化原则、RAG系统搭建 智能体开发:Agent创建、工具集成、复杂业务工作流设计 生产部署:多渠道接入、监控运维、安全治理 成本控制:Token预算管理、选型决

u010323587的专栏 1073

[图片备份]个人理解的Android事件分发机制

本来准备演讲的绘制的草图,结果没用上,好不容易绘制,就在这备份下吧!

Simon_Hu 633

利用setEcoMode优化innovus中的ecoAddRepeater批量操作效率

本文详细介绍了在Cadence Innovus工具中,如何利用setEcoMode命令的batchMode参数,显著提升ecoAddRepeater命令在批量插入buffer或inverter时的操作效率。通过合并重复的初始化和数据库更新开销,该模式可将大规模时序修复操作的执行速度提升数倍,并提供了完整的脚本示例与最佳实践,帮助后端设计工程师优化ECO流程。

mango的博客 511

安卓事件分发机制详解--个人笔记,个人见解,欢迎批评指正

我们不修改任何的返回值,直接在Activity中添加一个线性布局,中间加一个Butoon,从源码走一个流程1、Activity的事件流程  Activity不是View,是没有事件拦截方法的,Activity中的布局文件时系统通过window.addView()的形式加载进来的。 Activity源码分析,http://blog.youkuaiyun.com/carson_ho/article/details...

XiaoMu_Mu的博客 252

智能车图像处理5-入门级分析4 ---环岛的状态机与补线

PS :入门级文章适合新手,如果已经有基础可以去看进阶篇文章。

taiyuezyh的博客 8218

基于Simulink的电机热阻模型建立与仿真

本文详细介绍了基于Simulink的电机热阻模型建立方法。通过将电机传热路径分解为5段关键热阻(绕组内部、槽绝缘、铁芯、机壳、冷却系统),采用Simscape Thermal模块构建热阻网络模型。重点阐述了参数化热阻计算、实验数据校准、不同设计方案对比等关键步骤,并以15kW车用PMSM为例演示建模过程。文章还分享了非线性热阻处理、多维网络构建等高级技巧,指出该模型在热设计迭代、散热匹配、故障诊断等方面的重要工程价值,为电机热安全设计提供了有效的数字化解决方案。

xiaoheshang_123的博客 335

Android复习-事件分发机制(个人笔记)

一、Activity,Window,View 我们在View里面接收到的MotionEvent是哪里来的? 事件由系统先传递给Activity的dispatchTouchEvent方法,然后再通过window对象传递给decorView,decorView会最终传递给我们设置的布局里。 如何向下传递? 假设我们设置的顶级view是一个ViewGroup,那么事件会由Activity传递给D

Ade-rui的博客 617

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

event android,androidEvent 对 android 事件分发机制的一点个人理解,将事件机制进行了简单化处理,刚方便理解! @codeKK Android开源站...

android 中的事件处理一直以来困扰不少刚刚从事 android 开发的同学,网上也有不少讲解 android 事件分发的文章,然而讲解的都不够简洁!现在我将用另一种简洁的方式来讲解 android 事件的分发机制!android 的事件分发可以简单的归位两类:1.view 的事件分发和处理 2.ViewGroup 的事件分发和处理。我们首先分析 View 的事件分发和处理。View 的事件分...

weixin_35586996的博客 268

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Android 事件分发机制 理解杂谈

欢迎使用Markdown编辑器写博ddd本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和图片上传 LaTex数学公式 UML序列图和流程图 离线写博客 导入导出Markdown文件 丰富的快捷键 快捷键 加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctr

haha_321的专栏 535

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Android里Touch 事件的分发和消费机制

今天偶然看到一篇关于Touch事件的分发和消费机制的文章,感觉写得很彻底很清晰,转发过来给大家分享下 Android 编程下 Touch 事件的分发和消费机制 以下是我根据上面文章自己画的一个大概的流程草图,请指点…

沉疯的博客 439

安卓自定义View进阶-事件分发机制详解(1),Android开发揭秘

最后这里放上我这段时间复习的资料,这个资料也是偶然一位朋友分享给我的,里面包含了腾讯、字节跳动、阿里、百度2019-2021面试真题解析,并且把每个技术点整理成了视频和PDF(知识脉络 + 诸多细节)。还有高级架构技术进阶脑图、高级进阶架构资料帮助大家学习提升进阶,也可以分享给身边好友一起学习。一起互勉~[外链图片转存中…(img-dLkETvLc-1711864201348)]一起互勉~本文已被CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》收录。

m0_62289824的博客 610

Android事件分发,拦截的流程梳理

2.View>ViewGroup这个过程,这个过程称之为Android的事件处理返回 其中ViewGroup的部分可以有多层嵌套,处理方式如上1.2依次进行。

rainbowchou的技术日常 521

【Android】事件分发机制

从上表可以看到 Activity和 View都是没有事件拦截的,这是因为:Activity 作为原始的事件分发者,如果 Activity 拦截了事件会导致整个屏幕都无法响应事件,这肯定不是我们想要的效果。View作为事件传递的最末端,要么消费掉事件,要么不处理进行回传,根本没必要进行事件拦截。

2303_79296612的博客 1725

Android ——事件分发机制

用户在使用app时,会经常频繁的触摸屏幕,点击页面交互,打开需要的功能。用户触摸点击的动作,就涉及到app中相关UI的触摸和点击事件。事件在UI中传递和处理的过程,就是事件分发流程。发生一次点击事件时,事件会按照Activity->ViewGroup->View的顺序,进行事件传递。

qq_45730283的博客 2220

安卓事件分发

首先,事件开始,进入Activity起点。此时只进行分发而没有任何拦截行为。然后,经过Window传递到Decorview的。此时,会判断Activity有无处理需求。若有,调用Activity的onTouchEvent(ev)方法。若无,继续向下分发。接着,事件到达viewgroup的。此时通过onInterceptTouchEvent判断是否拦截,如果拦截就会直接调用自身的onTouchEvent()方法,不再向下分发。不拦截则会继续向下分发。最后。

m0_74381746的博客 1500
上一篇: Android事件分发机制详解
下一篇: Android Canvas方法总结
谦行
博客等级 码龄11年 182粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值