Button的onTouch,onClick,onLongClick事件发生先后顺序和关联
2015-12-02 10:03
239 查看
Button的onTouch,onClick,onLongClick事件发生先后顺序和关联:
一,onTouch返回false
首先是onTouch事件的down事件发生,此时,如果长按,触发onLongClick事件;
然后是onTouch事件的up事件发生,up完毕,最后触发onClick事件。
二,onTouch返回true
首先是onTouch事件的down事件发生,然后是onTouch事件的up事件发生;期间不触发onClick和onLongClick事件
三,onTouch:down返回true,up返回false:结果同二。
机制分析:
onTouch事件中:down事件返回值标记此次事件是否为点击事件(返回false,是点击事件;返回true,不记为点击事件),而up事件标记此次事件结束时间,也就是判断是否为长按。
只要当down返回true时候,系统将不把本次事件记录为点击事件,也就不会触发onClick或者onLongClick事件了。因此尽管当up的时候返回false,系统也不会继续触发onClick事件了。
四,onTouch:down返回false,up返回true:
首先是onTouch事件的down事件发生,此时:
长按,触发onLongClick事件,然后是onTouch事件的up事件发生,完毕。
短按,先触发onTouch的up事件, 到一定时间后,自动触发onLongClick事件。
机制分析:
onTouch事件中:down事件返回值标记此次事件是否为点击事件(返回false,是点击事件;返回true,不记为点击事件),而up事件标记此次事件结束时间,也就是判断是否为长按。
当down返回false,标记此次事件为点击事件,而up返回了true,则表示此次事件一直没有结束,也就是一直长按下去了,达到长按临界时间后,自然触发长按事件,而onClick事件没有触发到
注意:如果onTouch和Onclick同时进行,则可以设置一个全局变量isMove=false;在MotionEvent.ACTION_MOVE:中进行判断,如果没有移动则isMove=false,如果移动了则isMove=true
问题:长按后才可以拖动按钮否则不可拖动按钮。
注意:ontouch事件不可以写在长按事件中。
此文章只是为了以后便于使用或者不确定的时候便于查看,可能有不足之后敬请见谅。
一,onTouch返回false
首先是onTouch事件的down事件发生,此时,如果长按,触发onLongClick事件;
然后是onTouch事件的up事件发生,up完毕,最后触发onClick事件。
二,onTouch返回true
首先是onTouch事件的down事件发生,然后是onTouch事件的up事件发生;期间不触发onClick和onLongClick事件
三,onTouch:down返回true,up返回false:结果同二。
机制分析:
onTouch事件中:down事件返回值标记此次事件是否为点击事件(返回false,是点击事件;返回true,不记为点击事件),而up事件标记此次事件结束时间,也就是判断是否为长按。
只要当down返回true时候,系统将不把本次事件记录为点击事件,也就不会触发onClick或者onLongClick事件了。因此尽管当up的时候返回false,系统也不会继续触发onClick事件了。
四,onTouch:down返回false,up返回true:
首先是onTouch事件的down事件发生,此时:
长按,触发onLongClick事件,然后是onTouch事件的up事件发生,完毕。
短按,先触发onTouch的up事件, 到一定时间后,自动触发onLongClick事件。
机制分析:
onTouch事件中:down事件返回值标记此次事件是否为点击事件(返回false,是点击事件;返回true,不记为点击事件),而up事件标记此次事件结束时间,也就是判断是否为长按。
当down返回false,标记此次事件为点击事件,而up返回了true,则表示此次事件一直没有结束,也就是一直长按下去了,达到长按临界时间后,自然触发长按事件,而onClick事件没有触发到
注意:如果onTouch和Onclick同时进行,则可以设置一个全局变量isMove=false;在MotionEvent.ACTION_MOVE:中进行判断,如果没有移动则isMove=false,如果移动了则isMove=true
问题:长按后才可以拖动按钮否则不可拖动按钮。
注意:ontouch事件不可以写在长按事件中。
此文章只是为了以后便于使用或者不确定的时候便于查看,可能有不足之后敬请见谅。
相关文章推荐
- Jquery的proxy理解
- LeetCode-String To Integer
- SHELL脚本的一些特殊用法
- Makefile
- jQuery-1.9.1源码分析系列(十三) 位置大小操作
- Spring注解@Component、@Repository、@Service、@Controller区别
- java Io流文件夹的拷贝
- GNU Radio message
- js闭包的理解
- avalon指令和js函数简单介绍
- 关于卷积神经网络原理以及代码实现应用的几点思考
- .NET编码解码(HtmlEncode与HtmlEncode)
- MSVCRTD.lib(crtexe.obj) : error LNK2019: unresolved external symbol _main re
- JAVA泛型和strictfp关键字说明,泛型还没明白
- 分布式应用中网络故障和分区的docker测试框架Blockade
- 分享方法:android 获得屏幕状态
- Unicode编码完全探究(三)之联通乱码
- 获得图形的实际坐标值
- LVM磁盘管理
- js ==与===区别(两个等号与三个等号)