Android- gestureDetector onLongPress和onDown

时间:2014-05-22 10:59:46

标签: android events gesture

我使用手势来捕捉触摸事件,但是当我长按时触发两个事件。 我怎么能在按住按钮时禁用onDown事件? 这是我的代码。

final GestureDetector gestureDetector = new GestureDetector(
                new GestureDetector.SimpleOnGestureListener() {
                    public void onLongPress(MotionEvent e) {
                        Toast.makeText(mContext,
                                "long" + position + counter++,
                                Toast.LENGTH_SHORT).show();
                    }

                    public boolean onDown(MotionEvent e) {
                        Toast.makeText(mContext,
                                "touch" + position + counter++,
                                Toast.LENGTH_SHORT).show();
                        return true;
                    }
                });
        category.setOnTouchListener(new OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent event) {
                return gestureDetector.onTouchEvent(event);
            }
        });

1 个答案:

答案 0 :(得分:0)

您可能想要使用abstract boolean onSingleTapUp(MotionEvent e)。 您正在使用的回调public boolean onDown(MotionEvent e)在所有手势开始时触发(当手指触摸屏幕时)。 无论手势是单击,长按还是其他任何手势都只能在手势结束时(当您松开手指时)检测到。