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'?

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" ... /> 
  • Fragmentos en ViewPager se recrean
  • Fragmento todavía existe después de quitar?
  • Animador de animación personalizada
  • Fragmentos que se superponen entre sí
  • Cómo descartar un DialogFragment al presionar fuera del cuadro de diálogo?
  • ActionBarSherlock, ViewPager, TabsAdapter Fragmentos de tabulación anidados
  • Cambiar fragmentos de forma programática
  • Android Fragment, Force View para liberar manualmente
  • Fragmento ya activo - Al intentar establecerArgumentos
  • Android ListView en el ejemplo de fragmento
  • La barra de acción se mueve hacia abajo mientras se reemplaza con fragmento
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.