android 关于view的onTouch和onClick同时触发解决方案
2018-03-26 15:47
351 查看
做了一个悬浮窗,需要处理onTouch和onClick事件,遇到了一些问题,浪费了不少时间,总算解决了,在此记录下来。
onTouch的return值为true时不能响应onClick事件,设置为false后,就会同时触发两个事件,然后就在网上找解决办法,有的说记录坐标,根据结束坐标的位置和开始位置的差值来判断,有的说用什么线程来判断,各种奇怪的帖子都看了,贴的代码都是扔上好几个变量,压根看不懂是啥玩意,头疼的要死。最后在技术群里一个朋友给出了思路,然后成功解决了。办法其实很简单:定义一个boolean的全局变量isMove= false,然后在onTouch方法里的MotionEvent.ACTION_MOVE:里边设置isMove =true;在MotionEvent.ACTION_UP:判断isMove的值 if (isMove== false) {//对click事件的处理} else if (isMove == true){//对onTouch事件的处理,我仅仅是更新坐标} 记得一定要设置在break之前再次设置isMove =false;
转载@heng。
onTouch的return值为true时不能响应onClick事件,设置为false后,就会同时触发两个事件,然后就在网上找解决办法,有的说记录坐标,根据结束坐标的位置和开始位置的差值来判断,有的说用什么线程来判断,各种奇怪的帖子都看了,贴的代码都是扔上好几个变量,压根看不懂是啥玩意,头疼的要死。最后在技术群里一个朋友给出了思路,然后成功解决了。办法其实很简单:定义一个boolean的全局变量isMove= false,然后在onTouch方法里的MotionEvent.ACTION_MOVE:里边设置isMove =true;在MotionEvent.ACTION_UP:判断isMove的值 if (isMove== false) {//对click事件的处理} else if (isMove == true){//对onTouch事件的处理,我仅仅是更新坐标} 记得一定要设置在break之前再次设置isMove =false;
转载@heng。
相关文章推荐
- android 关于view的onTouch和onClick同时触发解决方案
- Android关于OnTouch 和OnClick同时调用冲突的解决方案
- Android关于OnTouch 和OnClick同时调用冲突的解决方案
- Android关于OnTouch 和OnClick同时调用冲突的解决方案
- 关于android下面girdview item同时实现onclick和ontouch的一点心得.
- Android关于OnTouch 和OnClick同时调用冲突的解决方案
- Android关于OnTouch 和OnClick同时调用冲突的解决方案
- Android关于OnTouch 和OnClick同时调用冲突的解决方案
- 关于OnTouch 和OnClick同时调用冲突的解决方案
- Android OnTouch 和OnClick同时调用冲突问题(单个View)
- Android使用TextView的onClick不触发解决方案
- Android关于OnTouch 和OnClick同时调用冲突 重复
- 关于android.view.WindowLeaked异常的解决方案
- Android OnTouchListener实时监听触点坐标,需要同时监听OnClickListener才有效
- Android View的onTouch和onClick和onLongClick事件
- 关于android.view.WindowLeaked的解决方案
- 关于android.view.WindowLeaked异常的解决方案
- 关于android Activity中注解的使用,省去无用的findviewbyid....setonclick.....
- 关于android.view.WindowLeaked异常的解决方案
- Android View的onTouch和onClick和onLongClick事件