¿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?
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 onDestroy
FragmentA 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
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 CREATED
estado (modo onPause
y onStop
se les llama), pero la vista es destruido (y onDestroyView
se llama). La próxima vez que navegue de regreso a este fragmento, se volverá a crear la jerarquía de vistas ( onCreateView
se llama a su). Por lo tanto, debe volver a establecer la URL de su imagen en la vista de imagen.