Android 触摸事件传递流程解析
来源:互联网 发布:linux dhcp服务配置 编辑:程序博客网 时间:2024/06/05 19:51
android中的Touch事件都是从ACTION_DOWN开始的:
单手指操作:ACTION_DOWN---ACTION_MOVE----ACTION_UP
多手指操作:ACTION_DOWN---ACTION_POINTER_DOWN---ACTION_MOVE--ACTION_POINTER_UP---ACTION_UP.
解释:
super.dispatchTouchEvent(ev),事件向下分发。
onInterceptTouchEvent是ViewGroup提供的方法,默认返回false,返回true表示拦截。
onTouchEvent是View中提供的方法,ViewGroup也有这个方法,view中不提供onInterceptTouchEvent。view中默认返回true,表示消费了这个事件。
View里,有两个回调函数 :
ViewGroup里,有三个回调函数 :
Android中默认情况下事件传递是由最终的view的接收到,传递过程是从父布局到子布局,也就是从Activity到ViewGroup到View的过程,默认情况,ViewGroup起到的是透传作用。Android中事件传递过程(按箭头方向)如下图,图片来自[qiushuiqifei],谢谢[qiushuiqifei]整理。
触摸事件是一连串ACTION_DOWN,ACTION_MOVE..MOVE…MOVE、最后ACTION_UP,触摸事件还有ACTION_CANCEL事件。事件都是从ACTION_DOWN开始的,Activity的dispatchTouchEvent()首先接收到ACTION_DOWN,执行super.dispatchTouchEvent(ev),事件向下分发。
dispatchTouchEvent()返回true,后续事件(ACTION_MOVE、ACTION_UP)会再传递,如果返回false,dispatchTouchEvent()就接收不到ACTION_UP、ACTION_MOVE。
下面的几张图参考自[eoe]
图1.ACTION_DOWN都没被消费
图2-1.ACTION_DOWN被View消费了
图2-2.后续ACTION_MOVE和UP在不被拦截的情况下都会去找VIEW
图3.后续的被拦截了
android中的Touch事件都是从ACTION_DOWN开始的:
单手指操作:ACTION_DOWN---ACTION_MOVE----ACTION_UP
多手指操作:ACTION_DOWN---ACTION_POINTER_DOWN---ACTION_MOVE--ACTION_POINTER_UP---ACTION_UP.
- Android 触摸事件传递流程解析
- Android 触摸事件传递流程解析
- android触摸事件传递
- Android触摸事件传递
- android触摸事件传递
- Android 触摸事件传递
- Android O: 触摸事件传递流程源码分析(上)
- Android O: 触摸事件传递流程源码分析(下)
- Android源码解析(三十)-->触摸事件分发流程
- Android 触摸事件传递机制
- 关于Android触摸事件传递
- Android 触摸事件传递机制
- Android 触摸事件传递机制
- Android 触摸事件传递机制
- Android 触摸事件传递机制
- Android 触摸事件传递机制
- android 触摸事件传递机制
- android 触摸事件传递图解
- laravel导出Excel
- Android Studio中配置Retrolambda插件【mac】
- BeautifulSoup入门
- Java线程死锁查看分析方法
- 嵌入式学习文章
- Android 触摸事件传递流程解析
- 2.5 数组
- 服务器容错保护(Hystrix依赖隔离)
- 哈希表C开源的uthash的简单初步封装(二)
- 个人开发者如何通过人工智能盈利?智能原理及阿尔法狗详解
- MM 委外加工(Subconctracting)流程
- Java中四种代码块的区别
- C++移位运算符
- CentOS 7 修改主机名