Android 学习笔记(十二):安卓中的事件分发机制
一、事件分发的对象是谁
答:点击事件(Touch事件)
定义
当用户触摸屏幕时(View或ViewGroup派生的控件),将产生点击事件。Touch事件的相关细节(发生触摸的位置。时间等)被封装成MotionEvent对象事件类型(4种)
事件类型 | 具体动作 |
---|---|
MotionEvent.ACTION_DOWN | 按下View(所有事件的起点) |
MotionEvent.ACTION_UP | 抬起View(与Down相对应) |
MotionEvent.ACTION_MOVE | 滑动View |
MotionEvent.ACTION_CANCEL | 结束事件(非人为结束) |
- 事件列
从手指解除屏幕至手指离开屏幕,这个过程产生的一系列事件。
即当一个点击事件(MotionEvent)产生后,系统需把这个事件传递一个具体的View去处理。
二、事件分发的本质
答:将点击事件(MotionEvent)传递到某个具体的View并且处理整个过程。即事件传递的过程 = 分发过程。
三、事件在哪些对象之间进行传递
答:Activity、ViewGroup、View
四、事件分发的顺序
答:Activity -> ViewGroup -> View。即一个点击事件发生后,事件先传到Activity、再传到ViewGroup、最终传到View。
五、事件分发过程由哪些方法协作完成?
答:
方法 | 作用 | 调用时刻 |
---|---|---|
dispatchTouchEvent() | 分发(传递)点击事件 | 当点击事件能够传递给当前View时,该方法就会被调用 |
onTouchEvent() | 处理点击事件 | 在dispatchTouchEvent()方法内部调用 |
onInterceptTouchEvent() | 判断是否拦截了某个事件,只存在于ViewGroup中,普通的View没有该方法 | 在ViewGroup的dispatchTouchEvent()内部调用 |
Android 学习笔记(十二):安卓中的事件分发机制相关推荐
- 吴恩达《机器学习》学习笔记十二——机器学习系统
吴恩达<机器学习>学习笔记十二--机器学习系统 一.设计机器学习系统的思想 1.快速实现+绘制学习曲线--寻找重点优化的方向 2.误差分析 3.数值估计 二.偏斜类问题(类别不均衡) 三. ...
- ROS学习笔记十二:使用roswtf
ROS学习笔记十二:使用roswtf 在使用ROS过程中,roswtf工具可以为我们提供ROS系统是否正常工作的检查作用. 注意:在进行下列操作之前,请确保roscore没有运行. 检查ROS是否安装 ...
- Python语言入门这一篇就够了-学习笔记(十二万字)
Python语言入门这一篇就够了-学习笔记(十二万字) 友情提示:先关注收藏,再查看,12万字保姆级 Python语言从入门到精通教程. 文章目录 Python语言入门这一篇就够了-学习笔记(十二万字 ...
- Polyworks脚本开发学习笔记(十二)-输出和读取文本文件
Polyworks脚本开发学习笔记(十二)-输出和读取文本文件 Polyworks作为一个测量工具,将测量的数据方便的导出到文本文件则是一项必须的功能.在DATA_FILE这个命令下提供了很多子命令用 ...
- OpenCV学习笔记(十二)——图像分割与提取
在图像处理的过程中,经常需要从图像中将前景对象作为目标图像分割或者提取出来.例如,在视频监控中,观测到的是固定背景下的视频内容,而我们对背景本身并无兴趣,感兴趣的是背景中出现的车辆.行人或者其他对象. ...
- 【转】 Pro Android学习笔记(二十):用户界面和控制(8):GridView和Spinner
目录(?)[-] GridView Spinner GridView GridView是网格状布局,如图所示.在了解ListView后,很容易了解GridView.下面是例子的XML文件. <? ...
- 【转】Pro Android学习笔记(二五):用户界面和控制(13):LinearLayout和TableLayout...
目录(?)[-] 布局Layout 线性布局LinearLayout 表格布局TableLayout 布局Layout Layout是容器,用于对所包含的view进行布局.layout是view的子类 ...
- 【现代机器人学】学习笔记十二:轮式移动机器人
目录 轮式机器人类型 全向轮式机器人 建模 单个全向轮是怎么运动的 多个全向轮是如何带动底盘运动的 运动规划和反馈控制 非完整约束轮式移动机器人 建模 独轮车 差速驱动机器人 车型机器人 非完整移动机 ...
- Pro Android学习笔记(二九):用户界面和控制(17):include和merge
xml控件代码重用:include 如果我们定义一个控件,需要在不同的layout中重复使用,或者在同一个layout中重复使用,可以采用include的方式.例如定义my_button.xml如下 ...
最新文章
- Mysql与Oracle区别
- 在MVC的cshtml视图页获取默认路由下的ID值的方法
- [20170711]关于tmux共享会话问题.txt
- ie不支持getElementsByName的解决办法
- Educational Codeforces Round 25
- AtCoder Beginner Contest 174 总结
- linux rsync 安装教程,linux下的rsync配置和使用教程
- python制作饼状图
- 导入maven项目报错无法运行
- nodejs - 服务端管理 - PM2
- WIN10 如何隐藏桌面图标
- Invalid topo name mytopo
- 网站导航应该怎么设计?
- Excel技能培训之六-定位功能,隔行插入删除空行,分组插入空行,高亮行列间差异,复制筛选后的数据
- 怎样大幅度地提升硬盘的速度
- 没有项目经验?软件测试简历项目经验怎么写...
- 闪存类型测试软件,轻松测闪存类型 测试软件P10Check上架谷歌商店
- 国内外顶级核心期刊TOP20
- 【BUUCTF刷题记录】[极客大挑战 2019] Http
- 基于神经网络——鸢尾花识别(Iris)