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:
-
Llamé a método Fragment.setUserVisibleHint () con el valor respectivo. Los fragmentos alojados sobrepasan este método y reaccionan adecuadamente. Esto funcionó.
-
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.
- Single page PreferenceActivity w / sin encabezados / fragmentos?
- Diferencia entre onResume () y onResumeFragments ()
- Fragmentos no funcionan correctamente después de cambio de orientación
- Guardar el estado de los fragmentos del cajón de navegación
- Alcance el diseño de la tableta de android gmail en la selección (estilo de la flecha)
- ¿Cómo enviar datos de un Fragmento a otro Fragmento?
- No hay animación al cambiar de fragmento a la actividad y volver
- Error al inflar el fragmento del diseño android-support-v4
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.
- Obtenga el formato E 164 de contactos en la API de Android menos de 16
- Android BLE onCharacteristicRead y onCharacteristicChanged nunca llamado