2012-06-13 15 views
13

en primer lugar, disculpa mi mal inglés.Desactivar los gestos en PagerAdapter/ViewPager

Obtuve un trabajo PagerAdapter con 3 Views. Funciona bien. Puedo cambiar las Vistas con gestos normales Y con Buttonclicks. Pero quiero deshabilitar los gestos. ¿Es posible cambiar las Vistas solo con buttonClicks y deshabilitar los gestos?

aquí es el 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; 
     } 
    } 

RESUELTO:

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

      return true; 
     } 
    }); 

Respuesta

9

Sustituir el onTouchListener() y devolver false para deshabilitar paging de golpe.

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

gracias, resuelven de esta manera: \t \t finales Ver TouchView = findViewById (R.id.remotePager); \t \t touchView.setOnTouchListener (nueva View.OnTouchListener() { \t \t \t @ Override \t \t \t onTouch pública booleano (Ver v, caso MotionEvent) { \t \t \t \t return true; \t \t \t} \t \t}); – user1453317

Cuestiones relacionadas