以前写 android ,对事件的处理没有太深入,只是简单的 onTouchEvent 就 ok 了,现在写的 UI ,很多自定义组件,父 view 和子 view 都需要接收事件,然后处理。如果不弄明白它的事件传递机制,很难拥有好的用户体验。
Touchevent 中,返回值是 true ,则说明消耗掉了这个事件,返回值是 false ,则没有消耗掉,会继续传递下去,这个是最基本的。
在 View 中跟 Touch 相关的事件有 dispatchTouchEvent , interceptTouchEvnet , onTouchEvent 三种。dispatchTouchEvent 是负责分发事件的,事件从 activity 传递出来之后,最先到达的就是最顶层 view 的dispatchTouchEvent ,然后它进行分发,如果返回 false ,则交给这个 view 的 interceptTouchEvent 方法来决定是否要拦截这个事件,如果 interceptTouchEvent 返回 true ,也就是拦截掉了,则交给它的 onTouchEvent 来处理,如果 interceptTouchEvent 返回 false ,那么就传递给子 view ,由子 view 的 dispatchTouchEvent 再来开始这个事件的分发。
如果事件传递到某一层的子 view 的 onTouchEvent 上了,这个方法返回了 false ,那么这个事件会从这个 view往上传递,都是 onTouchEvent 来接收。而如果传递到最上面的 onTouchEvent 也返回 false 的话,这个事件就会“消失”,而且接收不到下一次事件。(我说的一次事件指的是 down 到 up 之间的一系列事件)
我画了个图,见附件。
总结一下,如果这一次事件没有人消耗掉,则系统不会给你下一次事件,因为他会认为你这次的事件阻塞了,没必要给下一次。onTouchEvent如果不消耗的话,会从子view传递到父view。
分享到:
相关推荐
Android事件处理机制
事件及事件处理程序 事件及事件处理程序视频
jquery事件处理。
复杂事件处理手册 在金融服务和其他行业中,如何使那些重要且具有战略意义的业务信息以高速数据流 的方式到达企业变得尤其重要,而复杂事件处理(CEP)就是这一过程的代名词。在复杂事 件处理中,数据是不断变化的,...
IT故障事件处理报告模块,可供各位参考
这是一个Qt事件处理系统,目前只实现了鼠标事件的处理,后续将添加键盘事件,绘图事件,定时事件等等的处理过程。程序比较简单,适合初学者。程序开发环境:win7+qt5.7.0
有的练习要补充的代码也写了,下载后自己看看,以后大家多传一些
在Android应用程序中,有一类...这个PPT讲Android应用程序输入事件的分发和处理过程,主要涉及到输入管理InputManager、输入事件监控线程InputReader、输入事件分发线程InputDispatcher,以及应用程序主线程消息循环。
JAVA事件处理机制 事件监听器 事件监听器适配器
中断机构能发现中断事件,且当发现中断事件后迫使正在处理器上执行的进程暂时停止执行,而让操作系统的中断处理程序占有处理器去处理出现的中断事件。对不同的中断事件,由于它们的性质不同,所以操作系统应采用不同...
java窗口事件处理
java事件处理机制 java事件处理机制 java事件处理机制 java事件处理机制
事件处理.ppt
针对物联网事件云的复杂事件处理面临的海量事件规模、分布式数据处理、上下文相关等挑战, 提出一种分布式的上下文敏感复杂事件处理方法。该方法基于模糊本体进行事件上下文的表示和推理, 通过查询重写支持事件上下文...
在每个对象上,这个事件处理函数只会被执行一次。其他规则与bind()函数相同。这个事件处理函数会接收到一个事件对象,可以通过它来阻止(浏览器)默认的行为。如果既想取消默认的行为,又想阻止事件起泡,这个事件...
1.实现JavaScript事件注册;...2.实现JavaScript事件处理函数; 3.实现JavaScript鼠标和键盘事件; 4.实现JavaScript表单相关事件; 5.实现JavaScript字幕滚动事件; 6.实现JavaScript编辑事件;
1.event object:就是事件产生时具体的“事件”,用于listener的相应的方法之中,作为参数,一般存在与listerner的方法之中 2.event source:具体的接受事件的实体,比如说,你点击一个button,那么button就是...
工程质量事故处理记录 C 1.10 编号: 工程名称 施工单位 事故部位 报告日期 事故简况 预计损失 建筑: 材料设备: 人工费: 伤亡: 其他: 事故处理经过: 事故处理结果: 施工专业技术负责人...
事件处理编程范例
组件类事件 动作类事件 事件编程 事件委托授权处理模型 事件编程的基本原则