Interruptor ViewPager FragmentPagerAdapter
Tengo un ViewPager
que es poblado por un FragmentPagerAdapter
. Quiero cambiar del primer adaptador dos otros. El problema es que todas las páginas que se cargaron antes (al tener el primer adaptador) siguen siendo las antiguas.
Miré el código fuente de FragmentPagerAdapter
y supongo que el problema se produce debido a la implementación de instatiateItem()
. Usando la etiqueta, que tiene la posición y conatiner id en ella, el método comprueba si ya hay un Fragment
en la posición. Cuando hay un Fragment
con esta etiqueta se adjunta. El identificador y la posición del contenedor no cambian cuando se configura un nuevo adaptador para que encuentre el Fragment
antiguo.
- 2 ViewPager no se desplaza en Android 2.3
- Creación de un diseño de cuadro de mandos como fragmento mediante programación
- ViewPager + FragmentStatePagerAdapter + cambio de orientación
- No se puede cambiar ID de contenedor de fragmento
- Destruye el elemento del adaptador de ViewPager después de cambiar la orientación de la pantalla
¿Conoces una manera de eliminar todos los fragmentos antiguos?
- Llame a actvity después de que el viewpager haya terminado
- Cómo volver a crear todos los fragmentos en ViewPager:
- Android ViewPager w / varias clases de fragmentos cada w / archivo de diseño independiente
- Deshabilitar ItemTouchHelper para una parte de un visor
- ¿Cómo puedo implementar el desplazamiento horizontal sin utilizar la biblioteca de soporte?
- ¿Cuál es la distancia mínima predeterminada para desplazarse correctamente en View Pager?
- Cómo cargar una imagen de una URL en un viewpager
- Cómo cargar datos de fragmentos sólo cuando se hace clic en su pestaña en PagerSlidingTabStrip
Me di cuenta de que la etiqueta Fragment utiliza un id, obtenido por getItemId()
y no la posición. Para solucionar mi problema he sobreescribido getItemId()
y uso diferentes ids diferentes en los diferentes FragmentPagerAdapter
s.
@Override public long getItemId(int position) { return mPagerId*100+position; }
mPagerId es un entero único que se asigna en el constructor. Si tiene más de 100 páginas debe reemplazar 100 por 1000.
- Rotar una imagen alrededor de un punto de pivote
- Android convertir Cadena a byte – tomar byte en las piezas