您的位置:首页 > 移动开发 > Android开发

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。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: