【问题标题】:LongPress-Detection with GestureDetector doesn't work使用 GestureDetector 进行长按检测不起作用
【发布时间】:2013-12-11 17:57:02
【问题描述】:

我试图在我的 Android 应用程序中捕捉 LongPress-Gesture,但 this.gestureDetector.onTouchEvent(event) 总是返回 false。我在 LogCat 中得到“检测到长按”,但 onTouchEvent 总是返回 false - 有什么想法吗?

final GestureDetector gestureDetector = new GestureDetector(this.getContext(),
            new GestureDetector.SimpleOnGestureListener() {
                @Override
                public void onLongPress(MotionEvent event) {
                    Log.e(TAG, "Longpress detected");
               }
            });

@Override
public boolean onTouchEvent(MotionEvent event) {

    boolean test = this.gestureDetector.onTouchEvent(event);
    Log.v(TAG, Boolean.toString(test)); // test is _always_ false
    if (test) {
       // Do something
        return test;
    }
    return super.onTouchEvent(event);
}

【问题讨论】:

    标签: android gestures


    【解决方案1】:

    因为onLongPress没有返回值,所以定义为void。

     public void onLongPress(MotionEvent event) {
                         Log.e(TAG, "Longpress detected");
                    }
    

    【讨论】:

    • 是的。仍然奇怪的是,在框架中,一些手势检测器方法返回一个布尔值(这对我来说是有意义的),而有些则没有。尤其是你必须调用 onTouchEvent() 才能让整个事情正常工作 - 没有得到可靠的布尔值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-12
    • 2020-08-06
    • 1970-01-01
    • 1970-01-01
    • 2014-03-11
    • 2011-12-16
    • 1970-01-01
    相关资源
    最近更新 更多