Android手势传递一般过程及其规则研究
来源:互联网 发布:tensorflow 下载安装 编辑:程序博客网 时间:2024/06/07 12:39
1.手势传递一般过程
Android 手势传递通过dispatchTouchEvent 、onInterceptTouchEvent(ViewGroup特有)、onTouchEvent
View手势过程传递为 dispatchTouchEvent ----》》onInterceptTouchEvent ----》》onTouchEvent
多嵌套手势传递过程为如图所示 ParentView 包含 SonView 包含 ChildView
手势传递过程由最外层 父view 往最内层 子View 传递,view内部执行拦截检验 dispatch 和 intercept,返回false(不拦截处理)的时候,view继续将手势往下传递,直到到达最内层子view后,由子view执行onTouch事件,如果子view不做处理返回false,则向上级父类传递,执行父类onTouch事件。
2.手势 拦截处理
2.1 Android 基础手势为 ACTION_DOWN , ACTION_MOVE, ACTION_UP
ANCTION_MOVE,ACTION_UP以ACTION_DOWN是否做处理而出现,即拦截ACTION_DOWN后,才依次出现ACTION_MOVE,ACTION_UP.
2.2 onInterceptTouchEvent 拦截处理对象为View, dispatchTouchEvent和onTouchEvent 则面对传递过程。
onInterceptTouchEvent ACTION_DOWN 返回true,手势不会向ChildView传递,而是执行son的onTouch事件,然后继续向上级传递。
dispatchTouchEvent ACTION_DOWN 返回true,因为dispatch是对过程进行拦截,并且告诉系统,此处需要进行手势处理,不需要再进行手势传递,所以,系统直接进行下个手势的传递。同理 onTouchEvent 也是如此
前面说过,手势的传递开始于ACTION_DOWN,当系统接收到手势拦截的反馈之后,才会将ACTIOIN_MOVE,ACTION_UP传递出来,并且确认拦截的当前View中的onInterceptTouchEvent 不再执行。
所以,个人觉得,做手势拦截和解决手势冲突问题,要明确手势传递的过程还有其本身处理规则,我认为做拦截,先是在Intercept处确定拦截规则,在把具体实现放在touch中。
0 0
- Android手势传递一般过程及其规则研究
- android滑动组件嵌套一般思路,多任务手势思路,触摸传递思路,【例】listview嵌套viewpager
- Android 手势研究(-)
- Android触摸手势的传递图解
- Android事件传递机制、手势检测
- Android手势 GestureDetector类及其用法
- 手势研究
- Android手势事件分发过程分析
- android自定义view绘制的一般过程
- Android中Http通讯的一般过程
- Android onTouchEvent、dispatchTouchEvent、onInterceptTouchEvent的传递规则
- Android onTouchEvent、dispatchTouchEvent、onInterceptTouchEvent的传递规则
- Android Touch传递的一些简单规则
- Android手势研究(textview及listview对比验证)
- Android研究之手势交互实例实现详解
- android handler传递消息过程
- android手势事件传递(实例:下拉刷新)
- Android方法的值传递及其改变
- 数据结构示例之数组翻转
- Mantis 时间显示不正确(与系统时间不一致)的两种处理方法
- jq实现截取头像上传
- UICollectionView使用
- Android判断当前应用程序处于前台还是后台
- Android手势传递一般过程及其规则研究
- 字符串拆分到数组
- leetcode 257. Binary Tree Paths
- 2017年商汤科技前端面试题
- 使用Apache Commons Net包中的FTPClient实现javaFTP来上传目录(新)
- 多线程同步与单线程异步对比
- PHP 使用PHPExcel实现文件导入与导出功能
- 笔记2.0
- hive中select中DISTINCT的技巧和使用