MotionEvent.Action_up提前调用

时间:2012-09-16 19:41:11

标签: android events touch motion

我遇到了MotionEvent.ACTION_UP的问题在我举起手指之前调用了该事件。

这是我正在使用的代码。我应该改变什么?谢谢你的帮助!

public boolean onTouchEvent(MotionEvent e) {
    switch(e.getAction()) {
    case MotionEvent.ACTION_DOWN:
        if(checkColide(e.getX(), e.getY())) {
            isFootballTouched = true;
            downT = c.MILLISECOND;
            downX = e.getX();
        }
        break;
    case MotionEvent.ACTION_MOVE:
        //moveFootball(e.getX(), e.getY());
        break;
    case MotionEvent.ACTION_UP:
        upT = c.MILLISECOND;
        upX = e.getX();
        getVelocity();          
        break;
    }       
    return false;       
}

2 个答案:

答案 0 :(得分:3)

如果出现这3个案例中的一个

,请尝试返回true
 public boolean onTouchEvent(MotionEvent e) {
switch(e.getAction()) {
case MotionEvent.ACTION_DOWN:
    if(checkColide(e.getX(), e.getY())) {
        isFootballTouched = true;
        downT = c.MILLISECOND;
        downX = e.getX();
    }
    return true;
case MotionEvent.ACTION_MOVE:
    //moveFootball(e.getX(), e.getY());
    return true;
case MotionEvent.ACTION_UP:
    upT = c.MILLISECOND;
    upX = e.getX();
    getVelocity();          
    return true;
}       
return false;       

}

答案 1 :(得分:1)

您可能应该从true返回onTouchEvent()。返回false表示您不再有兴趣接收此View的事件。希望这会有所帮助。