Cómo pausar / reanudar un fragmento

Antecedentes: Escribí un contenedor personalizado que es capaz de contener tres fragmentos. Dependiendo del estado de este contenedor sólo dos o esos tres fragmentos son visibles. Para informar a los fragmentos que su visibilidad fue cambiada probé dos opciones:

  1. Llamé a método Fragment.setUserVisibleHint () con el valor respectivo. Los fragmentos alojados sobrepasan este método y reaccionan adecuadamente. Esto funcionó.

  2. Llamé a los métodos FragmentTransaction.hide () y FragmentTransaction.show () para ocultar y mostrar fragmentos. Los fragmentos alojados sobrepasan Fragment.onHiddenChanged () y reaccionan según sea necesario. Esto funcionó también.

Mi problema es que no estoy satisfecho con ninguna de estas opciones. Me gustaría poner el fragmento invisible en un estado pausado estándar. La ventaja de esta opción es que mantengo el código limpio y simple, ya que no necesito anular ningún método especial (como setUserVisibleHint() o onHiddenChanged() ) y puedo manejar todo dentro de onPause() y onResume() que son Ya implementado.

Pregunta: ¿Cuál es la forma correcta de poner un fragmento en un estado de pausa y luego reanudarlo desde ese estado?

Actualización: he probado FragmentTransaction.detach() también. Esto no es una opción porque destruye la vista, que no está permitida en mi caso.

Parece que quieres llamar FragmentTransaction # attach y FragmentTransaction # detach para poner tu fragmento a través de las rutinas de ciclo de vida igual que FragmentPagerAdapter ( ver fuente aquí ).

Desmontar el Fragment con detach() pondrá el Fragment través de los onPause , onStop y finalmente onDestroyView de ciclo de vida, y luego cuando se vuelva a conectar con attach() pasará por onCreateView , onStart y finalmente onResume métodos de ciclo de vida .

Debe asegurarse de que está usando la etiqueta as-well como container-id ya que puede tener múltiples fragmentos adjuntos a un solo contenedor y tendrá que ser capaz de obtener la referencia Fragment desde el FragmentManager que luego tendrá que hacerse a través de su etiqueta.

  • Robolectric es-singlepane (/ solo-fragmento) -test
  • Android Studio XML no reconoce objectAnimator
  • Qué cosas se ejecutan en el hilo principal de la interfaz de usuario al abrir una aplicación para Android
  • Trabajando con DIalogs en fragmentos
  • SavedInstanceState al restaurar el fragmento de la pila trasera
  • Menú en Fragmentos no mostrados
  • Usando el paquete para pasar datos entre fragmento a otro fragmento ejemplo
  • Ocultar teclado al navegar de un fragmento a otro
  • Soporte de transición de fragmentos 25.1.0 con Recyclerview
  • Cómo llamar a un fragmento de BaseAdapter Class Android?
  • Android: Escribir casos de prueba para Fragmentos
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.