viewpager showing practice pagetransformer not fragments example best android android-viewpager

showing - viewpager android github



cómo hacer que mi viewpager deslice de derecha a izquierda (9)

Tengo un viewpager y contiene información, pero me permite deslizar las páginas de izquierda a derecha. ¿Cómo puedo hacer que se deslice de izquierda a derecha, lo que significa cambiar su dirección?


Es una técnica muy simple para cambiar la dirección de barrido del Viewpager.

Hay dos pasos simples que tiene que seguirte,

1. Cambie la rotación del visor de vista,

viewpager.setRotationY (180);

2. Luego, vuelva a cambiar la dirección del contenedor de fragmentos que es el hijo de viewpager,

recyclerView.setRotationY (180);

Nota: En mi caso, he usado recyclerview como el elemento secundario del visor de páginas.

Esto es 100% trabajado para mí.


Estoy seguro de que no es relevante para la operación, pero encontré una solución que funcionó para mí (ya que modificar los datos fue un problema para mi caso). Simplemente giré el viewpager 180 grados en el eje Y, y luego giré sus subvistas nuevamente en 180.

android.view.View public void setRotationY(float rotationY)

Espero que haya ayudado a alguien, ya que creo que esto es lo más parecido a cómo Android refleja todo el sistema operativo cuando se cambia al lenguaje rtl.


Para permitir que su ViewPager horizontal se comporte como RecyclerView cuando LayoutDirection cambie, simplemente agregue este método a su ViewPager personalizado;

public class LoopViewPager extends ViewPager { .... ... public void setLayoutDirection(int layoutDirection) { if(layoutDirection == ViewCompat.LAYOUT_DIRECTION_LTR) { setRotationY(0); } else if(layoutDirection == ViewCompat.LAYOUT_DIRECTION_RTL) { setRotationY(180); } }

y donde uses tu viewPager, configúralo dinámicamente de esta manera;

viewPager.setLayoutDirection(context.getResources().getConfiguration().getLayoutDirection());


Primero debe implementar OnPageChangeListener en su clase y segundo establecer el oyente en su viewpager como viewpager.setOnPageChangeListener (yourclass.this); Esperanza Esto funcionará.


Puedes hacer algo como esto,

ViewPager.setCurrentItem(lastposition);


Sé que esta pregunta es antigua, pero aquí está mi versión de las cosas:

Para que su viewpager deslice RTL, independientemente de si tiene fragmentos o vistas en su interior, debe hacer lo siguiente

paso 1: define un entero: R.integer.angle_rotation_for_rtl

para values es 0

y para values-rtl es 180

paso 2:

viewPager.setRotationY(getResources().getInteger(R.integer.angle_rotation_for_rtl));

paso 3:

viewPager.setPageTransformer(false, new ViewPager.PageTransformer() { @Override public void transformPage(@NonNull View page, float position) { page.setRotationY(getResources().getInteger(R.integer.angle_rotation_for_rtl)); } });

Y el resultado: un viewpager que funciona sin problemas, sin ifs extra


Ya puedes deslizar en ambas direcciones. Por defecto, muestra la página cero, pero podría cambiar eso:

protected void onCreate(Bundle savedInstanceState) { // ... viewPager.setCurrentItem(myFragmentCount-1); // ...


mi solución. dinamicamente:

public class RTLViewPager extends ViewPager { public RTLViewPager(Context context) { super(context); } public RTLViewPager(Context context, AttributeSet attrs) { super(context, attrs); } @Override public void setAdapter(PagerAdapter adapter) { super.setAdapter(adapter); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { if(getResources().getConfiguration().getLayoutDirection() == View.LAYOUT_DIRECTION_RTL){ setCurrentItem(adapter.getCount()-1); } } } }


Creo que puedes configurar la página actual a la última página usando viewPager.setCurrentItem() . Luego se deslizará de izquierda a derecha .. :)