2012-06-04 4 views
5

内部で検出されず、ユーザーはセルをタップすると、別のフラグメントに行き、アンドロイドスワイプ私はそれがlistFragmentをぐるぐる一つのタブ上のタブホストに基づいてプロジェクトを持っているし、断片を使用して、</p> <p>フラグメント

ユーザーそこから

は私が左にスワイプまたはフラグメントを変更する権利を検出する必要があり

、私はlistFragmentのセルに移動するまで、私はプロジェクトが働いてい、そのタブのフラグメント間

をスワイプすることができますしたがって、

ここに私のコード:

public class PrepareSkin extends Fragment implements OnGestureListener{ 

     private static final int SWIPE_MIN_DISTANCE = 120; 
     private static final int SWIPE_MAX_OFF_PATH = 250; 
     private static final int SWIPE_THRESHOLD_VELOCITY = 200; 

     private GestureDetector gestureScanner; 


    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 


     gestureScanner = new GestureDetector(this); 


     // TODO Auto-generated method stub 
     View myFragmentView = inflater.inflate(R.layout.prepare_skin, container, false); 

     Log.i("Mirko", "CREATO <<"); 


     return myFragmentView; 
    } 

     public boolean onTouchEvent(MotionEvent me) 
     { 
     return gestureScanner.onTouchEvent(me); 
     } 

    @Override 
    public boolean onDown(MotionEvent e) { 
     // TODO Auto-generated method stub 
     return false; 
    } 

    @Override 
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, 
      float velocityY) { 
     try { 
       if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH) 
        return false; 
       // right to left swipe 
       if(e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) { 
        Log.i("Mirko", "LEFTERS <<"); 


       } else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) { 
        Log.i("Mirko", "rIGTHERS >>"); 

       } 
       else if(e1.getY() - e2.getY() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) { 
       } else if (e2.getY() - e1.getY() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) { 
       } 
      } catch (Exception e) { 
       // nothing 
      } 

        return true; 
    } 

    @Override 
    public void onLongPress(MotionEvent e) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, 
      float distanceY) { 
     // TODO Auto-generated method stub 
     return false; 
    } 

    @Override 
    public void onShowPress(MotionEvent e) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public boolean onSingleTapUp(MotionEvent e) { 
     // TODO Auto-generated method stub 
     return false; 
    } 

} 

なぜ私のジェスチャー認識が動作していませんか?

おかげで、

+0

これはあなたのために機能しましたか? – user427969

答えて

1

このリンクはあなたの路地を思わ:Android Fragment onCreateView with Gestures

彼らは彼らのクラスにOnGestureListenerを実装するのではなく、彼らの全体のビューにclickListenerを添付して、そのようにジェスチャーリスナーをトリガしませんが、コードのスニペットにも適用されます。

もう一度すばやく修正すると、onDown()をfalseに戻すことがあるかもしれません。おそらく、それをtrueとして返す必要があります。 onDown()trueを先に返さない場合、AndroidはonUp()を認識しません。

関連する問題

 関連する問題