2012-08-08 7 views
6

を決定します。私。左から右にスワイプしているのか、右から左にスワイプしているのか。アンドロイドSimpleOnPageChangeListener - 私はSimpleOnPageChangeListenerを拡張するクラスを持っているし、私のonPageScrollStateChanged方法で、私は、ユーザーがViewPagerを通じて前後スワイプしているかどうかを判断することができるようにしたいスワイプ方向

私はこの上でグーグルの多くを行ってきたが、私はそれについて何かを見つけることができません。私は、onPageScrollStateChangedメソッドがスワイプの方向を示すパラメータを提供することを期待していましたが、スワイプはありませんでした。

@Override 
    public void onPageScrollStateChanged(int state) { 

     // Determine whether the user is swiping forwards or backwards through the ViewPager 
    } 

誰にでもアイデアはありますか?

乾杯ViewPager.SimpleOnPageChangeListener マイク

答えて

2

使用とは、現在のタブのPOSとそれがスワイプされています方法あなたが出て作業することができ、そのようにインスタンスVARを保ちます。迅速な応答のための

private final ViewPager.SimpleOnPageChangeListener mPageChangeListener = new ViewPager.SimpleOnPageChangeListener() { 

     @Override 
     public void onPageSelected(final int position) { 
      onTabChanged(mPager.getAdapter(), mCurrentTabPosition, position); 
      mCurrentTabPosition = position; 
     } 
    }; 

protected void onTabChanged(final PagerAdapter adapter, final int oldPosition, final int newPosition) { 
     //Calc if swipe was left to right, or right to left 
     if (oldPosition>newPosition){ 
      // left to right 
     } 
     else{ 
      //right to left 
     } 

    } 
+0

こんにちはScottyab.Thanks。私はこのソリューションを実装しましたが、ページが既に変更された後にのみ起動します。私は、ユーザーが前進するのを止めるためにいくつかの妥当性検査を実行したいが、後ろ向きに移動できるようにしたい。このソリューションでは、ページはすでに変更されています。 – mighele

0
 int prevPage; 

     @Override 
     public void onPageSelected(int position) { 
      // went back a page 
      if (position-1 == prevPage) { 
       Log.i("Swipped", "Swipped Left"); 
      } 
      // went up a page 
      if (position+1 == prevPage) { 
       Log.i("Swipped", "Swipped Right"); 
      } 
      prevPage = position; 


     } 
関連する問題