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
- Agregar fragmento a framelayout de forma programática en android
- Elementos de menú ActionBar desaparecen en NestedFragments
- Mapfragment findFragmentById siempre null
- ¿Cómo iniciar la transición de elementos compartidos usando Fragmentos?
- Android Spinner Dropdown flecha que no se muestra
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'?
- ¿Por qué FragmentManager getBackStackEntryCount () devuelve cero?
- Android: en el interruptor de desplazamiento entre Vistas / Actividades / Fragmentos
- fragmento de llamada dentro de la clase AppWidgetProvider
- no alcanzable después de usar .getActivity () en un fragmento
- getChildFragmentManager () no se puede resolver o no se puede hacer referencia
- Diferentes SoftInputMode en la misma Actividad, ¿es posible?
- ¿Cómo puedo implementar FragmentManager y FragmentTransaction para reemplazar sólo un fragmento?
- Cómo borrar argumentos en Fragmento?
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" ... />
- Android – cómo forzar a que el niño reemplace el método padre que tiene código
- El menú de opciones se bloquea en la galaxia s4