2012-06-13 10 views
13

przede wszystkim przepraszam za mój zły angielski.Wyłącz gesty w PagerAdapter/ViewPager

Mam działający PagerAdapter z 3 Views. To działa dobrze. Mogę przełączać widoki z normalnymi gestami ORAZ z przyciskami przycisków. Ale chcę wyłączyć gesty. Czy można przełączać widoki tylko za pomocą przycisków kliknięć i wyłączać gesty?

oto 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; 
     } 
    } 

SOLVED:

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

      return true; 
     } 
    }); 

Odpowiedz

9

przesłonić onTouchListener() i return false aby wyłączyć stronicowania na machnięcia.

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

dzięki, rozwiązano to w ten sposób: \t \t końcowy Zobacz touchView = findViewById (R.id.remotePager); \t \t touchView.setOnTouchListener (nowa View.OnTouchListener() { \t \t \t @Override \t \t \t public boolean onTouch (Zobacz v, wydarzenie MotionEvent) { \t \t \t \t return true; \t \t \t} \t \t}); – user1453317