我一直在尝试使用运动事件和拖动(所以我没有把手指从屏幕上拿开 - 这不是扔)。问题是,只有当我的手指移过向上或向下拖动开始和结束的点时,它才会检测到第二、第三、第四等拖动向下或向上移动。
请参见下面的代码。当我向上拖动时,计数为2,当我向下拖动时,计数为1。然而,只有当我向上移动手指(计数为2),然后再向下移动超过我开始向上移动的点(这将是计数为1的点)时,它才会计数,而不是在那之前,这应该是2,当我向上移动时,它继续计数为2,只有当我超过改变方向向下走的点时,才会计数为2。但为什么它在那些点之前就不能被识别为拖动,因为任何在这些方向上的移动都应该是拖动。我该如何解决这个问题?
以下是我用来测试的简单代码:
请参见下面的代码。当我向上拖动时,计数为2,当我向下拖动时,计数为1。然而,只有当我向上移动手指(计数为2),然后再向下移动超过我开始向上移动的点(这将是计数为1的点)时,它才会计数,而不是在那之前,这应该是2,当我向上移动时,它继续计数为2,只有当我超过改变方向向下走的点时,才会计数为2。但为什么它在那些点之前就不能被识别为拖动,因为任何在这些方向上的移动都应该是拖动。我该如何解决这个问题?
以下是我用来测试的简单代码:
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
oldX = (int) event.getRawX();
oldY = (int) event.getRawY();
break;
case MotionEvent.ACTION_MOVE:
posY = (int) event.getRawY();
posX = (int) event.getRawX();
diffPosY = posY - oldY;
diffPosX = posX - oldX;
if (diffPosY > 0){//down
count = 1;
}
else//up
{
count = 2;
}
break;