博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
onInterceptTouchEvent / onTouchEvent响应事件的详析
阅读量:5982 次
发布时间:2019-06-20

本文共 1415 字,大约阅读时间需要 4 分钟。

onInterceptTouchEvent(),onTouchEvent() 默认返回false

注:事件分发机制是由 dispatchTouchEvent() 开始分发的

onInterceptTouchEvent()

ACTION_DOWN ------------ return true: ---→  将事件传递给该view下的 onTouchEvent()                                                                                                                                                                                                                                                                                                                          ACTION_MOVE ACTION_UP 都将直接由 onTouchEvent() 响应                                                                      

                                                                        该view的 onInterceptTouchEvent() 将无法响应 ACTION_MOVE,ACTION_UP

                            ------------ return false:    ↓   将事件向下传递(判断是否存在下级)

                                                              无下级: 将事件传递给该view下的 onTouchEvent()(等同于返回true)

                                                              有下级: 判断下一级是View 还是 ViewGroup

                                                                           ViewGroup : 将事件传递给下一级的 onInterceptTouchEvent(),一直向下传递

                                                                           View: 将事件传递给下一级的 onTouchEvent()

                                                               ACTION_MOVE ,ACTION_UP 都将由第一级别的 onInterceptTouchEvent() 响应

                                                                                              return false: 将ACTION_MOVE 事件传递给下一级的 onInterceptTouchEvent() ,以此类推

                                                                                              return true:   将ACTION_CANCEL 事件传递给 下面级别的所有响应 ACTION_DOWN 事件的方法,

                                                                                                                  将ACTION_MOVE 事件传递给此view 的onTouchEvent() ,所以接下来的action(ACTION_MOVE,ACTION_UP)都将按照这个顺序传递

onTouchEvent()

ACTION_DOWN ------------- return true: ---→  判断是否存在上级

                                                               无上级:将事件传递给下面的action(响应 ACTION_MOVE,ACTION_UP)

                          ACTION_MOVE,ACTION_UP: 将直接由 onTouchEvent() 响应

                                                               有上级:将事件传递给 第一级 onInterceptTouchEvent() 来响应 ACTION_MOVE,ACTION_UP 事件

                                                                             第一级的onInterceptTouchEvent() 响应了ACTION_MOVE 事件后 

                                                                                                                 return false: 将ACTION_MOVE 事件传递给下一级的 onInterceptTouchEvent() ,以此类推

                                                                                                                 return true:   将ACTION_CANCEL 事件传递给 下面级别的所有响应 ACTION_DOWN 事件的方法

                                                                                                                                      将ACTION_MOVE 事件传递给此view 的onTouchEvent() ,所以接下来的action(ACTION_MOVE,ACTION_UP)都将按照这个顺序传递

                                                                                                                                   

                            ------------- return false:    ↑    将事件向上传递(判断是否存在上级)

                                                               无上级:事件终止  X

                                                               有上级:事件传递给上一级的 onTouchEvent()

 

onTouchEvent()

转载于:https://www.cnblogs.com/zhy7104/p/6023961.html

你可能感兴趣的文章
http://cuiqingcai.com/993.html
查看>>
七 oracle 表查询二
查看>>
给ARM初学者的建议
查看>>
study topics
查看>>
io分析神器blktrace
查看>>
redis pipeset发布订阅
查看>>
生成器、迭代器
查看>>
Docker - 创建镜像(二)
查看>>
变量绑定
查看>>
bzoj 1901 线段树套平衡树+二分答案查询
查看>>
Javascript 控制 让输入框不能输入 数字
查看>>
统计分词
查看>>
蛇形矩阵构造
查看>>
信息安全系统设计基础第六周学习总结
查看>>
Belady现象
查看>>
poj3250(单调栈模板题)
查看>>
Oracle 12c 多租户 CDB 与 PDB之 shared undo 与 Local undo 切换
查看>>
排序----快速排序(方法1)
查看>>
java学习笔记2
查看>>
I00038 自守数(Automorphic number)
查看>>