é normal se minha imagem da câmera no ImageView desaparecer após a transição para outro fragmento usando o componente de navegação?
Eu tento capturar uma imagem usando a câmera, então o resultado da imagem será colocado no meu ImageView em um fragmento A como o código abaixo, para que NÃO busque um caminho de imagem do servidor e coloque-o no ImageView usando a Biblioteca Glide, eu tiro uma imagem de Câmera.
val image_uri = Uri.fromFile(photoFile)
photoImageView.setImageURI(image_uri)
e então, eu mudo para o próximo destino usando este código (do fragmento A para o fragmento B)
val toFragmentB = AFragmentDirections.actionGlobalBFragment()
findNavController().navigate(toFragmentB)
mas quando eu volto para FragmentA, a imagem em ImageView desapareceu. Eu acredito que onDestroy
FragmentA não é chamado quando eu segue para FragmentB. isso é normal ?
então para resolver esse problema, para fazer a imagem persistir, primeiro tenho que 'armazenar' a imagem no ViewModel? Estou certo?
Respostas
Verifique o ciclo de vida do fragmento , especialmente o fluxo de ciclo de vida de visualização e fragmento . Quando você está navegando para fora de um fragmento, ele muda para o CREATED
estado (assim onPause
e onStop
são chamados), mas a visualização é destruída (e onDestroyView
é chamada). Na próxima vez que você navegar de volta para este fragmento, a hierarquia de visualização será recriada (seu onCreateView
é chamado). Portanto, você deve definir o url da imagem para a visualização da imagem novamente.