2012-04-15 8 views
1

私のビューに複数のリスナーを追加しようとしています。 OnTouchListenerイベントは発生しますが、長いプレスイベントは発生しません。理由は何ですか?どのように私はそれを解決するのですか? https://developer.android.com/reference/android/view/GestureDetector.htmlビューにOnTouchListenerとLongPressListenerの両方を実装する

例: https://developer.android.com/training/gestures/detector.html

bookFlipper.setOnLongClickListener(new OnLongClickListener() { 
    public boolean onLongClick(View v){ //not fired 
     Log.d(tag, "Long press invoked!"); 
     //selectText(); 
     return true; 
    } 
}); 

bookFlipper.setOnTouchListener(new View.OnTouchListener() { 

    public boolean onTouch(View v, MotionEvent event){ 

     if(!menuShown && !selectionMode){ 
      bookFlipper.onTouchEvent(event); 
     } 

     switch(event.getAction()){ 

     case MotionEvent.ACTION_MOVE: 
      if(selectionMode){ 

      } 
      return false; 
     case MotionEvent.ACTION_DOWN: 
      lastDownX = event.getX(); 
      lastDownY = event.getX(); 
      touchingBook = true; 
      break; 
     case MotionEvent.ACTION_UP: 
      touchingBook = false; 
      if(!selectionMode){ 
       float diff = event.getX()/screenWidth; 
       float diffOld = lastDownX/screenWidth; 
       if(diff <= 0.33 && diffOld <= 0.33 && !menuShown){ // left 
        prevPage(); 
       }else if(diff >= 0.66 && diffOld >= 0.66 && !menuShown){// right 
        nextPage(); 
       }else if(diff < 0.66 && diff > 0.33 && diffOld < 0.66 && diffOld > 0.33){ // middle 
        showOverlay(!menuShown); 
       } 
      } 
      break; 
     default: 
      break; 
     } 
     return false; 
    } 
}); 

おかげで、この使用GestureDetectorCompat

参照解決

答えて

0

:)::)ここ

は私の源であります
関連する問題