2012-06-13 21 views
13

まず、私の悪い英語を残念に思います。PagerAdapter/ViewPagerでジェスチャーを無効にする

PagerAdapterは3 Viewsとなりました。それはうまく動作します。通常のジェスチャーとButtonclicksを使ってViewsを切り替えることができます。しかし、私はジェスチャーを無効にしたい。 buttonClicksでのみビューを切り替えてジェスチャーを無効にすることは可能ですか?ここ

PagerAdapter次のとおりです。

public class MyPagerAdapter extends PagerAdapter { 


     public int getCount() { 
      return 3; 
     } 

     public Object instantiateItem(View collection, int position) { 

      LayoutInflater inflater = (LayoutInflater) collection.getContext() 
        .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

      int resId = 0; 
      switch (position) { 
      case 0: 
       resId = R.layout.back; 
       break; 
      case 1: 
       resId = R.layout.stock; 
       break; 
      case 2: 
       resId = R.layout.menu; 
       break; 
      } 

      View view = inflater.inflate(resId, null); 

      ((ViewPager) collection).addView(view, 0); 

      return view; 
     } 

     @Override 
     public void destroyItem(View arg0, int arg1, Object arg2) { 
      ((ViewPager) arg0).removeView((View) arg2); 

     } 

     @Override 
     public boolean isViewFromObject(View arg0, Object arg1) { 
      return arg0 == ((View) arg1); 

     } 

     @Override 
     public Parcelable saveState() { 
      return null; 
     } 
    } 

を解決した:

final View touchView = findViewById(R.id.remotePager); 
    touchView.setOnTouchListener(new View.OnTouchListener() { 
     @Override 
     public boolean onTouch(View v, MotionEvent event) { 

      return true; 
     } 
    }); 

答えて

9

オーバーライドonTouchListener()とスワイプでページングを無効にする場合はfalseを返します。

public boolean onTouchEvent(android.view.MotionEvent ev) { 
     if (super.onTouchEvent(ev)) { 
      return false; 
     } 
} 
+3

おかげで、このようにそれを解決: \t \t最終ビューtouchView = findViewById(R.id.remotePager)。真 \t \t touchView.setOnTouchListener(新しいView.OnTouchListener(){ \t \t \t @Override \t \t \tパブリックブールonTouch(ビューV、MotionEventイベント){ \t \t \t \t戻り、 \t \t \t} \t \t}); – user1453317

関連する問題