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" ... /> 
  • ¿Cómo puedo implementar FragmentManager y FragmentTransaction para reemplazar sólo un fragmento?
  • ¿Cómo agregar otro fragmento en el fragmento existente?
  • FindViewById devuelve NULL cuando se utiliza Fragment
  • Android - guardar / restaurar estado de fragmento
  • Mostrar el botón de arriba en la barra de acción en las preferencias de la pantalla principal
  • Fragmento en ViewPager, no se puede obtener la instancia de fragmento actual
  • Agregar fragmento a framelayout de forma programática en android
  • App se está estrellando en la parte posterior presionado cuando el uso de mapa dentro de fragmento en android?
  • Animador de animación personalizada
  • Reutilizando fragmentos en un fragmento
  • Error de orientación de conmutación: Fragmento de error - ID de duplicado, etiqueta o identificador de origen 0x0
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.