android 关于view的onTouch和onClick同时触发解决方案

做了一个悬浮窗,需要处理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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值