我目前正在使用 dispatchTouchEvent 来获取触摸事件,有没有一种简单的方法来区分点击和“拖动”手势?
DispatchTouchEvent
被调用时会带有一个MotionEvent
参数。在MotionEvent
中,方法getAction
可以返回以下值:
如果是ACTION_DOWN标志,则设置isClick。如果有ACTION_MOVE,则清除isClick标志。
switch (ev.getAction()) {
case MotionEvent.ACTION_DOWN:
isClick = true;
break;
case MotionEvent.ACTION_CANCEL:
case MotionEvent.ACTION_UP:
if (isClick) {
//TODO Click action
}
break;
case MotionEvent.ACTION_MOVE:
isClick = false;
break;
default:
break;
}
return true;
}
设置阈值限制。当您将指针移动到小范围内时,使其被识别为单击,否则为移动。
ACTION_MOVE
,从而使您的点击操作无效。 - user2968401