在onTouchEvent中,ACTION_UP不起作用

use*_*901 13 android touch-event

我想在玩家触摸屏幕时阅读,何时不是.

    @Override
public boolean onTouchEvent(MotionEvent event) {
    if(event.getAction() == MotionEvent.ACTION_UP){  //ACTION UP
        actionOnUP = true;
        Log.v("MC", "Up");
    }
    if(event.getAction() == 0){ //ACTION DOWN
        actionOnUP = false;
        Log.v("MC", "Down");
    }
    Log.v("MC", event.getAction() + " ");
    return super.onTouchEvent(event);
}
Run Code Online (Sandbox Code Playgroud)

这段代码,是的,它有效,但只有当玩家触摸屏幕(ACTION_DOWN),但是当他没有触摸屏幕(ACTION_UP)时,没有任何反应:/ logcat的

^这是LogCat的屏幕形式.你可以看到:这只是ACTION_DOWN,但没有关于ACTION_UP的内容.类正在扩展视图:

public class MainClass extends SurfaceView implements SurfaceHolder.Callback {
Run Code Online (Sandbox Code Playgroud)

你能帮助我吗?

编辑:我的游戏基于这个教程:http://www.droidnova.com/2d-tutorial-series-part-v,848.html

Tim*_*Tim 48

我的猜测是super.onTouchEvent正在返回false,因为你调用的任何超类都不关心触摸事件.

如果您返回falseonTouchEvent,那么Android操作系统将不再通知您该手势中的任何其他事件.如果要继续接收触摸事件信息(ACTION_UP例如),则必须返回true第一个ACTION_DOWN事件.

  • 为您的问题获得一个好的,完整的,信息丰富的答案感觉太棒了.:)谢谢@Tim! (2认同)