ViewPager dentro de Fragmento con márgenes y el transformador de página no se representa correctamente

Tengo un viewpager con los fragmentos dentro de él.

Yo uso el código similar a eg

Margen de ViewPager en transformaciones de PageTransformer

Y el relleno para que pueda ver el borde de los fragmentos de cualquier lado del fragmento que está viendo actualmente.

Pero el problema es cuando se inicia el viewpager, los fragmentos a ambos lados no se desvanecieron y se alejaron.

Es decir, el método de transformPage de mi ZoomOutPageTransformer no se llama hasta que empiece a pasar, por lo que la inicial off-page derecha / izquierda o dondequiera que las vistas parezcan incorrectas, y luego "saltar" a mirar a la derecha una vez que se hace un golpe.

Cualquier idea de cómo puedo hacer que se haga correctamente, por ejemplo, si llamo

MyViewPager.setCurrentItem (1) – o cualquier cosa, las páginas a los lados se alejarán apropiadamente.

¿Cómo puedo obtener el viewpager para renderizar correctamente concrecreate con el transformador de zoomoutpaget aplicado a los fragmentos 'off screen'?

4 Solutions collect form web for “ViewPager dentro de Fragmento con márgenes y el transformador de página no se representa correctamente”

Básicamente el método transformPage () de PageTransformer devuelve la posición incorrecta al jugar con relleno y margen en el paginador de vista. Parece ser un error de marco como se indica aquí . La solución explicada allí no funcionaba para mí.

Así que vine con otra solución, fingiendo un arrastre en el paginador de vista tan pronto como poner datos en su adaptador asociado.

private void invalidatePageTransformer(final ViewPager pager) { new Handler().post(new Runnable() { @Override public void run() { //no need to invalidate if we have no adapter or no items if (pager.getAdapter() != null && pager.getAdapter().getCount() > 0) { //import check here, only fakeDrag if "beginFakeDrag()" returns true if (pager.beginFakeDrag()) { pager.fakeDragBy(0f); pager.endFakeDrag(); } } } }); } 

Sé que soy demasiado tarde para responder, pero me enfrenté al mismo problema y no encontré ninguna respuesta a esto. Así que para cualquier persona que enfrenta el mismo problema, aquí es algo:

Así que básicamente el transformador de página no recibe correctamente el siguiente elemento cuando se carga la primera vez, aunque funciona bien cuando se desplaza por primera vez.

Así que escribí unas pocas líneas para desplazar la página un poco y recuperarla, lo que nos da la vista necesaria:

  viewPager.scrollBy(5,0); viewPager.scrollBy(-5,0); 

He tenido un problema similar y lo solucioné agregando:

 // ... your ViewPager setup code here myViewPager.setPageMargin(1); 

He intentado ajustar el relleno de ViewPager entonces encontré 45dp dejará el artículo que dentro de ViewPager que rasga correctamente.

 <android.support.v4.view.ViewPager ... android:paddingTop="45dp" ... /> 
  • Cómo utilizar el fragmento con Viewpager para páginas de desplazamiento
  • Cómo hacer el ancho de DialogFragment a Fill_Parent
  • Cómo guardar el estado del fragmento teniendo listview
  • Paso de fragmentos entre las actividades
  • Inicialización del reproductor de YouTube en Fragmento
  • Llamar setHasOptionsMenu (true) de un fragmento da como resultado múltiples llamadas a onCreateOptionsMenu en Activity
  • Abre la actividad A y carga un fragmento específico de la actividad A de la actividad B
  • El fragmento es transparente y muestra la actividad a continuación
  • Android 4.4 - Estado translúcido / barras de navegación - fitsSystemWindows / clipToPadding no funcionan con transacciones de fragmentos
  • Comprobar si existe un fragmento y reutilizarlo
  • Cómo eliminar un fragmento específico de la pila trasera en android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.