美文网首页
解决GestureDetector手势检测只能检测到按下而其他手

解决GestureDetector手势检测只能检测到按下而其他手

作者: 伪装的狼 | 来源:发表于2020-02-10 16:59 被阅读0次

使用:
//手势检测
private GestureDetector gestureDetector;

//手势监听
gestureDetector = new GestureDetector(getContext(), simpleOnGestureListener);
gestureDetector.setIsLongpressEnabled(false); //不允许长按

//触发事件
@Override
public boolean onTouchEvent(MotionEvent event) {

    //返回其他监听
    return gestureDetector.onTouchEvent(event);
}

private GestureDetector.SimpleOnGestureListener simpleOnGestureListener = new GestureDetector.SimpleOnGestureListener() {
@Override
public boolean onDown(MotionEvent e) {

        Log.d(TAG, "onDown: ");
        return true;    //默认false
    }

    @Override
    public void onShowPress(MotionEvent e) {

        Log.d(TAG, "onShowPress: ");

    }

    @Override
    public boolean onSingleTapUp(MotionEvent e) {

        Log.d(TAG, "onSingleTapUp: ");

        return false;
    }

    @Override
    public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {

        Log.d(TAG, "onScroll: ");

        return true;
    }

    @Override
    public void onLongPress(MotionEvent e) {

        Log.d(TAG, "onLongPress: ");

    }

    @Override
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {

        Log.d(TAG, "onFling: ");

        return false;
    }
};

解决方法就是:
把onDown()的返回值改为true,因为所有手势是以onDown()开始,如果是false那么就检测不了其他手势。

相关文章

网友评论

      本文标题:解决GestureDetector手势检测只能检测到按下而其他手

      本文链接:https://www.haomeiwen.com/subject/mnaaxhtx.html