2012-09-01 6 views
5

ビューページのスクロールを一方向に制限する方法を教えてください。たとえば、右にスワイプを許可しますが、左にはスワイプを許可しないでください。私は絶対に立ち往生しています、どんな助けも大歓迎です。これをAndroidバージョン2.2で動作させる必要があることに注意するため、ViewPagerの互換ライブラリを使用しています。あなたは、元のViewPagerを拡張し、独自のViewPagerを作り、onTouchEvent方法ビューページで特定の方向にスワイプしないようにする

public class CustomViewPager extends ViewPager { 

    float lastX = 0; 

    boolean lockScroll = false; 

    public CustomViewPager(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 

    public CustomViewPager(Context context) { 
     super(context); 
    } 

    @Override 
    public boolean onTouchEvent(MotionEvent ev) { 

     switch (ev.getAction()) { 
     case MotionEvent.ACTION_DOWN: 
      lastX = ev.getX(); 
      lockScroll = false; 
      return super.onTouchEvent(ev); 
     case MotionEvent.ACTION_MOVE: 

      if (lastX > ev.getX()) { 
       lockScroll = false; 
      } else { 
       lockScroll = true; 
      } 

      lastX = ev.getX(); 
      break; 
     } 

     lastX = ev.getX(); 

     if(lockScroll) { 
      return false; 
     } else { 
      return super.onTouchEvent(ev); 
     } 

    } 



} 

答えて

6

事前

ありがとう - 残念ながら、これは動作しません。私もonTouchEventイベントを試みましたが、うーん、喜びはありません。

+0

こんにちはアリを上書きする必要があります –

+0

別のトリック、次のビューにスクロールすると、最初のものを削除します。私は数分後に更新します。 –

+1

私の答えが更新され、新しいコードがテストされ、うまくいきました。 –

関連する問題