美文网首页
解决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