это нормально, если мое изображение с камеры в ImageView исчезает после перехода к другому фрагменту с использованием компонента навигации?

Nov 29 2020

Я пытаюсь захватить изображение с помощью камеры, тогда результат изображения будет помещен в мой ImageView во фрагменте A, как в приведенном ниже коде, поэтому он НЕ получает путь к изображению с сервера, а затем помещает его в ImageView с помощью библиотеки Glide, я беру изображение из камера.

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

а затем я перехожу к следующему пункту назначения, используя этот код (от фрагмента A к фрагменту B)

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

но когда я вернусь к FragmentA, изображение в ImageView исчезнет. Я считаю, что onDestroyFragmentA не вызывается, когда я перехожу к FragmentB. это нормально ?

Итак, чтобы решить эту проблему, чтобы изображение сохранялось, сначала мне нужно «сохранить» изображение в ViewModel? я прав?

Ответы

esentsov Dec 01 2020 at 03:14

Проверьте жизненный цикл фрагмента , особенно поток жизненного цикла фрагмента . При перемещении из фрагмента, это переключение на CREATEDсостояние (так onPauseи onStopназывается), но вид разрушаетсяonDestroyViewназывается). В следующий раз, когда вы вернетесь к этому фрагменту, иерархия представлений будет воссоздана (ваш onCreateViewвызывается). Поэтому вы должны снова установить URL-адрес изображения для просмотра изображения.