2014-12-02 2 views
1

카드가 처리되지 않은 경우 유리에서 카드 스 와이프를 취소하려고합니다. 나는 (내가 디버거에서 chcked하고이 호출) 나 false를 반환하는 한 정도로이라고 생각 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; 
    } 
}); 

에 체크 특별한 표시가 있지만, 그렇다하더라도 카드 changend이다. 어떤 방법을 찾으려고했지만 실패했습니다. 어쩌면 내가 뭔가를 놓친 것 같아.

답변

0

오류가 너무 간단합니다. 당신은 "거짓을 돌려주는 것으로 충분하다고 생각합니다."라고 말합니다. 올바르게 이해하면 스 와이프 탐색을 취소하고 싶습니다. 기본적으로 스 와이프 탐색이 중지되지 않습니다.

방금 ​​거꾸로 가지고 있습니다. Google Developers page on GestureDetectors에서 :

공공 부울 onMotionEvent (MotionEvent 이벤트)

XE12은 이벤트가 항상 소비 할 필요가있는 경우 또는 제스처가 감지 된 경우에 true를 돌려 모션 이벤트를 처리 API 수준에서 추가.

결과 :

터치 이벤트가 반환 값의 의미

소비 여부를 반영은 여러 가지 방법 모두에 대해 동일합니다. 이벤트를 사용하려면 true를 반환하고 이벤트를 사용하지 않으려면 false를 반환합니다. 즉, 이벤트를 처리하는 유일한 사람이되고 이벤트에서 기본 동작을 허용하지 않으려면 true를 반환하여 사용자가 이벤트를 사용함을 나타냅니다.

문제를 해결하려면 true가 아닌 false를 반환하십시오!

관련 문제