如果未处理卡片,我正在尝试取消用玻璃卡刷卡。我有一个特殊的指标,在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是应该的(我在调试器中调用并调用它),但即便如此卡也是更改。我试图找到任何方法,但没有成功。也许我错过了什么。
答案 0 :(得分:0)
你的错误非常简单!你说,"我认为返回假是足够的" - 如果我理解正确,您想要取消滑动导航。基本上,停止滑动导航。
你只是倒退了。来自Google Developers page on GestureDetector
s:
public boolean onMotionEvent(MotionEvent event)
在API级别XE12中添加处理运动事件,如果,则返回true 应始终使用事件或检测到手势。
返回:
反映是否消耗了触摸事件
对于所有不同的方法,返回值的含义相同。返回true以使用该事件,并返回false以不使用该事件。换句话说,如果您想成为唯一一个处理事件的人,并且不允许在事件上发生默认操作,则返回true表示您使用该事件。
要解决您的问题,只需返回true,而不是false!