android TouchEvent解析(2)

简介: 假设: activity里有一个LAYOUT,在布局里有个按钮。 如果在按钮上触发一个CLICK事件 首先触发ACTIVITY的dispatchTouchEvent 然后触发ACTIVITY的onUserInteraction 然后触发LAYOUT的dispatchTouchEvent ...

假设:

activity里有一个LAYOUT,在布局里有个按钮。

如果在按钮上触发一个CLICK事件

首先触发ACTIVITY的dispatchTouchEvent

然后触发ACTIVITY的onUserInteraction

然后触发LAYOUT的dispatchTouchEvent

然后触发LAYOUT的onInterceptTouchEvent

然后触发BUTTON的onTouch(这是一个ACTION_DOWN事件)

紧跟着是一个ACTION_UP事件

触发ACTIVITY的dispatchTouchEvent

注意不再触发ACTIVITY的onUserInteraction,因为他对ACTION_UP不起作用。

然后触发LAYOUT的dispatchTouchEvent

然后触发LAYOUT的onInterceptTouchEvent

然后触发BUTTON的onTouch

最后触发BUTTON的onClick.

如果你在ONTOUCH事件里返回true,消费了此事件,那么ONCLICK将不会被响应

但是如果你不写ONCLICK事件,而ONTOUCH事件返回FLASE

。结合上一篇一起看,便会明白很多

 

另外:

如果对于控件想响应他的触摸事件,如果继承

则覆写ONTOUCHEVENT,如果不覆写则侦听ONTOUCH

如果覆写了ONTOUCHEVENT,则不再响应ONCLICK事件

如果写了ONCLICK,则不要再搞ONTOUCHEVENT了

所以ONCLICK和ONTOUCHEVENT二取一,另外如果有ONTOUCH侦听,那么此函数要先于其他函数执行

对于ONCLICK来说,要从头走俩便ONTOUCH,一次是DOWN,一次是UP

 

 

目录
相关文章
|
Java Android开发 数据格式
android touchEvent解析
android中的事件类型分为按键事件和屏幕触摸事件,Touch事件是屏幕触摸事件的基础事件。 一个最简单的屏幕触摸动作触发了一系列Touch事件:ACTION_DOWN->ACTION_MOVE->ACTION_MOVE->ACTION_MOVE...->ACTION_MOVE->ACTION_UP当屏幕中包含一个ViewGroup,而这个ViewGroup又包含一个子view,这个时候android系统如何处理Touch事件呢?到底是ViewGroup来处理Touch事件,还是子view来处理Touch事件呢?我只能很肯定的对你说不一定。
579 0
|
4天前
|
设计模式 算法 前端开发
Android面经分享,失业两个月,五一节前拿到Offer,设计思想与代码质量优化+程序性能优化+开发效率优化
Android面经分享,失业两个月,五一节前拿到Offer,设计思想与代码质量优化+程序性能优化+开发效率优化
|
3天前
|
编解码 数据库 Android开发
安卓应用开发:打造高效用户界面的五大技巧
【5月更文挑战第18天】在竞争激烈的应用市场中,一个流畅且直观的用户界面(UI)对于安卓应用的成功至关重要。本文将探讨五种提升安卓应用用户界面性能的技巧,包括合理布局设计、优化资源使用、利用硬件加速、内存管理以及响应式编程。通过这些方法,开发者可以创建出既美观又高效的应用体验,从而吸引和保留用户。
|
4天前
|
XML Android开发 数据格式
ConstraintLayout 2,Android高级开发面试
ConstraintLayout 2,Android高级开发面试
|
4天前
|
JSON Android开发 数据格式
Android框架-Google官方Gson解析,android开发实验报告总结
Android框架-Google官方Gson解析,android开发实验报告总结
|
4天前
|
前端开发 Android开发
Android架构组件JetPack之DataBinding玩转MVVM开发实战(四)
Android架构组件JetPack之DataBinding玩转MVVM开发实战(四)
Android架构组件JetPack之DataBinding玩转MVVM开发实战(四)
|
4天前
|
安全 Linux Android开发
Android最强保活黑科技的最强技术实现,2024年最新阿里资深Android开发带你搞懂Framework
Android最强保活黑科技的最强技术实现,2024年最新阿里资深Android开发带你搞懂Framework
Android最强保活黑科技的最强技术实现,2024年最新阿里资深Android开发带你搞懂Framework
|
4天前
|
算法 前端开发 Android开发
Android文字基线Baseline算法的使用讲解,Android开发面试题
Android文字基线Baseline算法的使用讲解,Android开发面试题
Android文字基线Baseline算法的使用讲解,Android开发面试题