Android View绘制及事件(五)View点击事件响应及分发过程详解

系列推荐:

 Android View绘制及事件(一)屏幕的视图层级,窗口概念初识

Android View绘制及事件(二)setContentView()源码,LayoutInflater加载View的过程

Android View绘制及事件(三)自定义View及View绘制流程

Android View绘制及事件(四)自定义组合控件+约束布局ConstraintLayout+自定义控件属性


目录

MotionEvent 事件

事件传递顺序

事件传递方法

三者关系详解

onTouchListener、onTouchEvent、onClickListener

滑动冲突


MotionEvent 事件

它是一个包装了很多触摸事件的实体类,用于存储UI界面与用户交互时的事件信息,如事件类型(按下、抬起、滑动)、x\y坐标值、发生的时间等。

getRawX() / getRawY()   :触摸点在屏幕上的绝对坐标,坐标值相对于屏幕而言;

getY() / getX() :基于该View的坐标值;

getAction() / getActionMasked() :事件类型

getAction,4种常用类型:ACTION_DOWN、ACTION_MOVE、ACTION_UP、ACTION_CANCEL。

getActionMasked,多2种:ACTION_POINTER_DOWN、ACTION_POINTER_UP。


Android 事件分发机制详解(上) Android事件分发机制是Android开发者必须了解的基础。当一个点击事件发生时,从Activity的事件分发开始(主要包括:dispatchTouchEvent()、onTouchEvent() 总结如下:那么ViewGroup的什么时候返回true / false?请继续往下看ViewGroup事件的分发机制。Android事件分发传递到Acitivity后,总是先传递到ViewGroup、再传递到View。流程总结如下:(假设已经经过了Acitivity事件分发传递并传递到ViewGroup。 阅读详情

相关推荐

Android面试题(27)-android的事件分发机制

今天开始写一点关于view的知识,先从最基本的讲吧,android的事件分发机制,其实在我看来,android的事件分发机制在现实生活中经常能看到,所以我觉得还是很好理解的;先看看生活中常见的一种情形吧;比如说,现在你所在的公司中有一项任务被派发下来了,项目经理把项目交给你的老大,你的老大老大手下有很多人,看了看觉得你做很合适,把这个任务交给你了;你一看觉得还行,你就接下来了;这么一个小小场景大概...

pgg_cold的博客 1万+

android 事件分发,解决由于listview中实时刷新,导致子view点击事件失效

近期由于个人的某些因素作怪,导致没有很好地总结和积累,主要是最近一段时间,大多数接触的都是第三方的sdk ,在一些接口问题上造成了很多困扰,很是麻烦,并且说明文档也不详细,所以每每遇到一些问题都要等待很久才能解决。 好了,废话不多说了。下面开始今天的正文。android 之事件分发机制。并且结合本人开发中遇到的实际场景来说明一下解决办法。 本人近期在做文件的上传和下载,这个必定

向大牛前行 7292

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

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

878

View的绘制机制&事件分发机制

一.View树的绘制流程 measure -> layout -> draw measure 1.ViewGroup.LayoutParams 2.MeasureSpec 重要方法:1.measure 2.onMeasure 3.setMeasuredDimenskion() 它开始于父控件的ViewGroup,它会通过不断的遍历子控件的measure方法,然后会根据ViewGr...

WangZeYu_的博客 829

Android自定义View的事件分发机制(一)

Android自定义View的事件分发机制(一) 博客地址:http://blog.youkuaiyun.com/jsonnan/article/details/73693543

亚马逊(Amazon ads)广告API申请步骤(已经更新完)

你如果是自己的店铺使用,就选择左边的、如果是授权的那种给别人用就选右边的。审核通过了才能进行下一步,我目前就是刚申请完,后续会持续更新!然后会调整到,下面的页面,选择Agency然后右上角点击创建。审核通过会发邮件到你的企业邮箱、时间大概是1-7天左右。输入对应的信息,点击提交审核,就可以开始申请了。1、广告平台跟卖家平台是分开的,这个概念要清楚。2、注册广告一定要用企业邮箱!回到首页,点击成为合作伙伴。注册了以后会跳转到广告。然后再点击加入合作伙伴。然后会弹出下面的页面。

阿泽的博客 5658

DSSP 工具:蛋白质二级结构信息计算与批量处理教程

DSSP(Dictionary of Secondary Structure in Proteins)是一款经典的蛋白质二级结构计算工具,由荷兰癌症研究所(NKI Research)Perrakis 团队维护。它通过分析蛋白质的 PDB 结构文件,能够自动标注每个氨基酸残基的二级结构类型、相对溶剂可及性(暴露面积)等关键信息,为后续的拓扑图绘制、疏水 / 亲水表面分析、二级结构预测模型训练等提供核心数据支持。

good_rrrrr的博客 1839

车载测试面试题总结

首先确认是什么问题,如果是测试软件的问题就先确定自己的测试方法有没有问题,如果没有问题,那就是测试软件的问题,这时候就需要提bug 进行跟踪,(比如BCM测试的时候,先明确测试的输入,对输入)进行需求分析,然后设计测试用例,进行用例评审,评审完执行测试用例形成最终的版本,台架分为:hil(黑尔)台架,单个控制器的台架、整车台架、车身台架、动力系统台架等,主要验证其功能,或者实车无法满足的测试环境。这个人不可能一直,点击几千次或者多少次几个小时连续点击,人不可能一直在点。因为要模拟一下这个稳定性,

woaxiaoqing的博客 7818

考完CAIE认证一年后,谈谈它对我的职业的真实影响(干货)

大门,让面试官愿意给你机会,但进门之后的发展,还得靠持续的学习和项目积累。说实话,当时的心态是“考都考了,总比闲着强”,对这张证书能带来什么实际价值,心里并没有底。这种广泛的生态认可,让这张证书的“流通性”变得很强——无论跳槽还是在原公司发展,它都是一个被市场验证过的能力证明。对我个人而言,虽然没跳槽,但在年度调薪和争取内部项目时,持证经历也成了一个有力的“加分项”。这种巨大的薪资差距,恰恰反映了市场对“能落地、懂技术”的深度人才的渴求。考完证后的这一年,我看到了两条清晰的职业发展路径在自己面前展开。

qq_16014487的博客 817

人大金仓数据库Kingbase FlySync同步程序安装

Kingbase FlySync同步程序(以下简称 KFS)是面向异地容灾、数据集中共享的场景推出的具备在异构数据平台间实现实时、增量数据同步的工具类产品,主要采用了物理日志解析技术,帮助用户解决不同数据平台的数据间可实现任意方向实时移动流转的问题,并保证此过程中数据不丢失,状态可监控,流转数据量可统计。KFS 需要安装的主要组件有 2 个,分别是后端同步程序和管理控制平台,另外KFS的部署方式也有2种,为分离部署何集中部署•集中部署:KFS与数据库部署在同一机器上。

weixin_44312518的博客 1179

四足机器人如何用对抗运动先验(AMP)实现复杂地形行走?Unitree Go1实战解析

本文深入解析了四足机器人Unitree Go1如何通过对抗运动先验(AMP)算法实现复杂地形行走。AMP结合模仿学习与对抗训练,使机器人仅凭本体感知就能适应未知地形。文章详细介绍了AMP的核心架构、仿真训练工程实践以及在Unitree Go1上的部署优化方案,展示了其在极端地形下的卓越性能表现。

weixin_29050513的博客 329

华为OD机试 - 比赛的冠亚季军(Python/JS/C/C++ 双机位C卷 100分)

有个运动员,他们的id为0到N-1,他们的实力由一组整数表示。他们之间进行比赛,需要决出冠亚军。比赛的规则是0号和1号比赛,2号和3号比赛,以此类推,每一轮,相邻的运动员进行比赛,获N (3\leq N< 10000)胜的进入下一轮,实力值大的获胜,实力值相等的情况,id小的情况下获胜,轮空的直接进入下一轮。(0 <= 实力值 <= 10000000000)。输入一行N个数字代表N的运动员的实力值。输出冠亚季军的id,用空格隔开。

学Java,找哪吒 1588

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

上一篇: Android 不同机型白名单如何设置,小米、华为、oppo、乐视
下一篇: Android 应用启动时出现黑白屏问题分析及解决办法
艾阳Blog
艾阳Blog 领域专家: 操作系统技术领域 领域专家: 操作系统技术领域
博客等级 码龄10年 4087粉丝 217原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

艾阳Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值