android - with - Los fragmentos dentro de ViewPager no se destruyen
tablayout without fragments (1)
En mi MainActivity en el método onCreate agrego () MainFragment a FrameLayout main_view_container:
if (savedInstanceState == null) {
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.add(R.id.main_view_container, new MainFragment(), MainFragment.FRAGMENT_TAG);
fragmentTransaction.commit();
}
En mi MainFragment tengo ViewPager con FragmentStatePagerAdapter y cada página es Fragment en sí misma (PagerFragment).
Luego, en algún momento después de hacer clic en el botón, deseo reemplazar todo el fragmento principal con otro fragmento (ReplacementFragment) y agregar la transacción a la pila posterior para poder volver al MainFragment en el botón Atrás presionado. Entonces hago lo siguiente:
FragmentTransaction fragmentTransaction = getActivity().getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.main_view_container, new ReplacementFragment(), null);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
Después de confirmar la transacción, MainFragment se detiene y se llama a onDestroyView (), pero no sucede nada con los fragmentos de PagerFragmentos (que están en ViewPager en MainFragment). No se produce un solo evento de llamada a onStop (). Luego, cuando regrese, la vista de MainFragment se recrea en onCreateView (), lo que significa también una nueva instancia de ViewPager, pero aún nada con PagerFragments.
¿Cómo es posible que en Parent Fragment onDestroyView se llame pero no en Children Fragments?
Debe usar getChildFragmentManager () al crear el adaptador de buscapersonas dentro de MainFragment.