Touch事件总结
来源:互联网 发布:vue.js省市区三级联动 编辑:程序博客网 时间:2024/05/21 09:19
1.Touch传递机制:
当目标view收到Down并且touch事件执行完毕后返回false时(不同于在ontouch和case Action.down时直接返回false,因为touch事件包括touchlistener和touchevent见后面说明),后续的move和up将不再传递到本view
参考文章:http://www.cnblogs.com/rocky_yi/archive/2011/01/21/1941522.html
http://blog.csdn.net/ddna/article/details/5473293
2.Touch与click和longclick的关系:
测试截图:
1)ontouch return false的情形,即down false,up false
2)down true,up false的情形
3)down false up true的情形
plus)这是通过现象总结出的,进阶版解释启发于http://blog.csdn.net/jiangwei0910410003/article/details/17504315这篇文章,先上图
说明:“在View中的dispatchTouchEvent方法中可以看到,是先执行OnTouchListener监听器中的onTouch方法,如果onTouchListener不为null,并且onTouch方法返回false的时候才执行onTouchEvent方法"
”从上面的例子可以看出来:onClick方法的执行时依赖于onTouch方法的,下面就总结一下onClick和onTouch两个方法之间的执行关系:
如果该View 是disable 状态:那么给它加上pressed标志位,重绘一下(在屏幕上显示为灰显按下去的效果)
如果该View不是disable状态,并且是clickable,那么在ACTION_DOWN的时候会加上pressed标志位,并启动一个timer(长按事件onLongClickListener)。重绘一下(显示出按下去的效果)。此时还是MOVE事件监视该View的状态,如果这个MOVE滑出了该View的范围,那么会复位View的click状态。UP事件时,会检查是否已经执行过LongPress,如果已经执行了LongPress,那么就不执行了Click,反之,会取消掉LongPress的Timer,然后在执行Click。
在UP事件的最后,做一下收尾处理,完事。
所以TouchEvent是Click 和 LongPress的底层实现,View的派生类如Button等等就不需要重写OnTouchEvent。“
"如果这个控件是可以点击的,那么onTouchEvent方法就返回true"
遗留的问题是:longclick和up事件似乎是互不相干的无法确定执行顺序,看图down false up true的情形,依此理论还是无法解释,请求看到文章的高手指教
3.涉及到手势操作时,将cancel与up当做同一事件处理
这篇文章的做法,很厉害http://yzhong-sa.iteye.com/blog/648807
- WebView Touch事件总结
- Touch事件总结
- touch事件总结
- touch事件传递原理总结
- touch事件传递原理总结
- Cocos2d-html5 touch事件总结
- touch事件传递机制总结
- Android Touch事件传递总结
- Android Touch事件总结 一
- ViewGroup的touch事件总结
- js touch事件 手势滑动事件总结
- Android Touch事件传递的一些总结
- Android中Touch事件的总结
- Android touch事件分发与总结
- Android中Touch事件的总结
- Android Touch事件分发机制总结
- Android中touch事件机制学习总结
- TOUCH事件
- UIVideoEditorController的使用
- hdu4336-----Card Collector
- Eclipse常用的10个快捷键
- visual studio 2013 快捷键大全、VS2013常用快捷键
- 使用命令对APK包进行签名
- Touch事件总结
- Linux下通配符总结
- mybatis入门
- Android adb 查看正在运行的程序 杀进程后守护进程保持
- 在eclipse中配置hibernate
- QML中的JavaScript用法详解
- 第十七周项目六 学生成绩统计(1-3)
- Android TextUtils类介绍
- 你必须知道的 34 个简单实用的 Ubuntu 快捷键