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

Android中onClick事件和onTouchEvent事件冲突问题的解决方案

2015-12-31 09:14 447 查看
在做自定义开关按钮的时候,出现了这样一个问题,当重写onTouchEvent方法的时候,onClick方法就执行不到了,这是由于onClick方法和onTouchEvent方法冲突造成的,我的解决方法是,在onTouchEvent的down事件的时候,记录下当前手指在屏幕上的位置firstX,up事件的时候记录下当前手指在屏幕上的位置lastX,如果两次位置没有变化,则认为当前是点击事件

@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {

case MotionEvent.ACTION_DOWN:
// 手指按下
// 获得手指在屏幕上的位置,这里只需要X坐标
firstX = lastX = event.getX();// 记录下当前的最开始在屏幕的值
break;

case MotionEvent.ACTION_MOVE:

break;
case MotionEvent.ACTION_UP:
// 手指抬起
lastX = event.getX();
if (lastX - firstX == 0) {
// 这是点击事件
} else {
//发生了拖拽
}
}

break;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: