FragmentStatePagerAdapter no quita fragmentos si se eliminó el fragmento padre
Estoy frente a fugas de memoria porque algunos fragmentos no se eliminan. Tengo la actividad que puebla la visión con el fragmento F1. Este fragmento tiene ViewPager y FragmentStatePagerAdapter asociados con él. El adaptador está sintiendo el buscapersonas con otro Fragmento F2. El problema se inicia cuando en la actividad I se elimina el fragmento F1. Los Fragmentos F2 existentes no se eliminan.
¿alguna sugerencia?
- ¿Es seguro usar el TAG `android: switcher: + R.id.ot_pag_main +: 0` para encontrar un fragmento?
- Añadir iconos a SlidingTabLayout en lugar de texto
- Android: Debería agregar un constructor vacío a un fragmento utilizado en ViewPager
- FloatingActionButton aparece en pantalla cuando se utiliza TabLayout y ViewPager
- Android ViewPager Botón Anterior / Siguiente
- BottomSheet con ViewPager y fragmentos?
- RecyclerView ViewPager java.lang.NullPointerException android.support.v7.widget.RecyclerView $ ItemAnimator $ ItemHolderInfo.left
- ¿Por qué no es posible usar ViewPager dentro de un Fragmento? En realidad es
- Determinar cuándo un ViewPager cambia páginas
- Función Cover Flow con vista pager android
- Recycler view + Ver Pager + Nailed ScrollView + CoordinatorLayout
- Android Poner la animación en la página de desplazamiento en la vista paginador utilizando fragmento
- Android: Vertical ViewPager
No estoy seguro si es el mismo problema, pero hace algún tiempo tuve un problema con viewpager donde los métodos de ciclo de vida de los fragmentos nunca fueron llamados y el problema estaba con el administrador de fragmentos.
Por lo tanto, cuando crea el adaptador intente pasar childFragmentManager en lugar de supportFragmentManager y ver si se soluciona su problema.
Tengo exactamente el mismo problema. Trate de mover su fragmento F1 de nuevo en una actividad. Eso podría ayudarle a determinar si el problema es tener un fragmento en un fragmento. Android realmente no le gusta eso. Si encuentro algo a mi lado, te lo haré saber
Yo estaba enfrentando el mismo problema aquí. Después de investigar durante mucho tiempo sobre cómo corregirlo de una manera "correcta" no pude conseguir que funcione. Así que me vi obligado a liberar explícitamente todos los fragmentos de F2
antes de eliminar el fragmento padre F1
(con una transacción de fragmento) de mi actividad.
// Remove all content from the FragmentStatePagerAdapter instance. myAdapter.Content.Clear (); // Content here may be an ArrayList in Java or a List in C#. myAdapter.NotifyDataSetChanged (); // Reset current empty adapter inside the ViewPager (this will make all existing F2 fragments to be released). myViewPager.Adapter = myAdapter; // Do the transaction removing the parent F1 fragment from the main Activity. FragmentManager.BeginTransaction ()...
Siguiendo estos pasos, todos los fragmentos F2
comenzaron a ser liberados de la memoria de forma y también están teniendo su OnPause
, OnDestroyView
… OnDestroy
callbacks que se invoca también.
- Android, subir una foto para alojar en imgur programatically
- La reproducción de una canción tras otra provoca un error en MP3Extractor