2012-09-01 21 views
5

¿Cómo puedo evitar que viewpager se desplace solo en una dirección? Por ejemplo, permite deslizar solo hacia la derecha, pero no hacia la izquierda. Estoy absolutamente atascado, cualquier ayuda sería muy apreciada. Para tener en cuenta que tengo que hacer que esto funcione para Android versión 2.2, entonces estoy usando la biblioteca compatibilty para ViewPager.Pausa de la vista Pausa en una dirección determinada

Gracias de antemano

Respuesta

6

que tendrá que hacer su propia ViewPager que se extiende la ViewPager original y reemplazar el método 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); 
     } 

    } 



} 
+0

Hola Ali - por desgracia, esto no funciona. Incluso probé el evento onTouchEvent, pero desafortunadamente no me gustó. –

+0

Otro truco, cuando se desplaza a la vista siguiente, elimine el primero. Lo actualizaré después de unos minutos. –

+1

Actualicé mi respuesta, probé el nuevo código y funcionó. –