¿Es normal si mi imagen de la cámara en ImageView desaparece después de pasar a otro fragmento usando el componente de navegación?

Nov 29 2020

Intento capturar una imagen usando la cámara, luego el resultado de la imagen se colocará en mi ImageView en un fragmentA como el código a continuación, por lo que NO recupera una ruta de imagen del servidor y luego la coloca en ImageView usando Glide Library, tomo una imagen de cámara.

val image_uri = Uri.fromFile(photoFile)
photoImageView.setImageURI(image_uri)

y luego, me muevo al siguiente destino usando este código (de fragmentA a fragmentB)

val toFragmentB = AFragmentDirections.actionGlobalBFragment()
findNavController().navigate(toFragmentB)

pero cuando vuelvo a FragmentA, la imagen en ImageView desaparece. Creo que onDestroyFragmentA no se llama cuando paso a FragmentB. esto es normal ?

Entonces, para resolver este problema, para que la imagen persista, primero tengo que 'almacenar' la imagen en ViewModel. estoy en lo cierto?

Respuestas

esentsov Dec 01 2020 at 03:14

Consulte el ciclo de vida de los fragmentos , especialmente la visualización y el flujo del ciclo de vida de los fragmentos . Cuando la navegación fuera de un fragmento, que es el cambio a CREATEDestado (modo onPausey onStopse les llama), pero la vista es destruido (y onDestroyViewse llama). La próxima vez que navegue de regreso a este fragmento, se volverá a crear la jerarquía de vistas ( onCreateViewse llama a su). Por lo tanto, debe volver a establecer la URL de su imagen en la vista de imagen.