取消滑动导航

时间:2014-12-02 07:34:26

标签: android google-glass google-gdk swipe-gesture

如果未处理卡片,我正在尝试取消用玻璃卡刷卡。我有一个特殊的指标,在​​SWIPE_RIGHT中检查

gestureDetector.setBaseListener(new GestureDetector.BaseListener() {

    @Override
    public boolean onGesture(Gesture gesture) {

        if (gesture == Gesture.TAP) {

            openOptionsMenu();
            return true;
        } else if (gesture == Gesture.TWO_TAP) {

            runSpeechRecognition();
            return true;
        } else if (gesture == Gesture.SWIPE_RIGHT) {

            // do something on right (forward) swipe
            CheckCards checkCard = mCheckCardsInfo.get(cardPosition);
            if (checkCard.getStatus() == 1){

                return true;
            }else{

                return false;
            }
        } else if (gesture == Gesture.SWIPE_LEFT) {

            // do something on left (backwards) swipe
            return true;
        } else if (gesture == Gesture.SWIPE_DOWN) {

            finish();
        }
        return false;
    }
});

我认为返回false是应该的(我在调试器中调用并调用它),但即便如此卡也是更改。我试图找到任何方法,但没有成功。也许我错过了什么。

1 个答案:

答案 0 :(得分:0)

你的错误非常简单!你说,"我认为返回假是足够的" - 如果我理解正确,您想要取消滑动导航。基本上,停止滑动导航。

你只是倒退了。来自Google Developers page on GestureDetectors

  

public boolean onMotionEvent(MotionEvent event)

     

在API级别XE12中添加处理运动事件,如果,则返回true   应始终使用事件或检测到手势。

     

返回:

     

反映是否消耗了触摸事件

对于所有不同的方法,返回值的含义相同。返回true以使用该事件,并返回false以不使用该事件。换句话说,如果您想成为唯一一个处理事件的人,并且不允许在事件上发生默认操作,则返回true表示您使用该事件。

要解决您的问题,只需返回true,而不是false!