个人对Android Touch事件机制的理解
来源:互联网 发布:动力学仿真软件ls 编辑:程序博客网 时间:2024/06/05 20:17
首先,观看了以下两位大神的文章,获益匪浅,在此提供一下链接:
Android事件分发机制完全解析,带你从源码的角度彻底理解(上)
[Android应用]对GroupView中onInterceptTouchEvent方法的理解
而我个人关于Touch事件的理解:
android/frameworks/base/core/java/android/view/View.java
dispatchTouchEvent -> onTouch(setOnTouchListener) -> onTouchEvent
Android中touch事件的传递,先传递到ViewGroup,再传递到View
1. dispatchTouchEvent -- 事件分发的入口。会先判断onTouch结果,再判断onTouchEvent结果
onTouch返回true的话,dispatchTouchEvent return true
onTouch返回false的话,dispatchTouchEvent 与 onTouchEvent 返回值一致
2. 假如有设置OnTouchListener,onTouch就会执行;
onTouch返回false的话,onTouchEvent就会执行
onTouch返回true的话,touch事件相当于被消耗掉,onTouchEvent不会执行
3. 当View为Enabled和Clickable时,onTouchEvent就会进行Touch事件处理,并且返回true;否则返回false
在ViewGroup中,onTouchEvent默认返回false
在ACTION_UP事件中,假如有设置OnClickListener,就会执行onClick事件
-----------------------------------------------------------------------------------------------------
android/frameworks/base/core/java/android/view/ViewGroup.java
1. onInterceptTouchEvent -- ViewGroup用于拦截传递给子View的Touch事件
返回false,会处理子view的dispatchTouchEvent,接下来的每一个事件都会先传到onInterceptTouchEvent()
返回true,子view的时间被拦截,会继续处理ViewGroup的dispatchTouchEvent,onTouch 和 onTouchEvent
2. ViewGroup中重写了dispatchTouchEvent方法,具体源码分析如下
http://www.2cto.com/kf/201412/365603.html
仅仅通过概览性的官方文档是很难理解onInterceptTouchEvent函数的用途的,只有通过演绎这个抽象的规则,配以图文才能获取这个重要的知识。
很显然,默认是返回false,不做截获。
返回true之后,事件流的后端控件就没有机会处理touch事件了。
把默认的事件流中每个处理函数看作一个节点,这个节点只要返回true, 后续的事件就被截止了,这样想就很好理解。
- 个人对Android Touch事件机制的理解
- 对Android中Touch事件分发机制的理解和总结
- android事件机制个人理解
- Android对touch事件的拦截处理机制
- Android对touch事件的拦截处理机制
- 对touch事件传递的简单理解
- Touch事件--对Scroller的理解
- Touch事件--对GestureDetector的理解
- Touch事件--对ViewDragHelper的理解
- Android Touch 事件机制
- android的Touch事件的消费机制
- Android的Touch事件处理机制介绍
- Android的Touch事件处理机制
- Android的Touch事件处理机制介绍
- Android的Touch事件处理机制
- 分析Android的Touch事件分发机制
- Android的Touch事件处理机制
- Android的Touch事件处理机制
- 单例设计模式
- 29-HTML-03-HTML(常用工具)
- sizeof用法
- Java类的第四个成员:代码块(或称初始化块)
- Android下获取各种存储目录
- 个人对Android Touch事件机制的理解
- 基于消息机制的异步架构之消息队列
- java面向对象
- tcp3次握手和4次挥手全过程
- 2015.08.08总结
- hdu 5375 Gray code (简单DP)
- 面试复习重点——基础篇:操作系统、计算机网络、设计模式【山科大牛陈磊整理】
- warning:deprecated conversion from string constant to 'char *'解决方案
- 29-HTML-04-HTML(列表标签)