如果我在 ImageView 中的相机图像在使用导航组件转到另一个片段后消失,这是否正常?

is it normal if my image from camera in ImageView disappear after segue to another fragment using navigation component?

我尝试使用相机捕获图像,然后图像结果将像下面的代码一样放置在我的 ImageView 中的 fragmentA 中,因此它 NOT 从中获取图像路径服务器然后使用 Glide Library 将它放在 ImageView 中,我从相机拍摄图像。

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

然后,我使用此代码移动到下一个目的地(从 fragmentA 到 fragmentB)

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

但是当我回到 FragmentA 时,ImageView 中的图像消失了。我相信当我转到 FragmentB 时,FragmentA 中的 onDestroy 不会被调用。这正常吗?

所以要解决这个问题,让图像持久化,首先我必须 'store' ViewModel 中的图像?我说得对吗?

查看 fragment lifecycle, especially view and fragment lifecycle flow。当您导航出片段时,它会切换到 CREATED 状态(因此会调用 onPauseonStop),但是 视图会被销毁 (并且onDestroyView 被调用)。下次您导航回此片段时,将重新创建视图层次结构(调用您的 onCreateView)。所以你应该再次设置你的图像 url 到图像视图。