apakah normal jika gambar saya dari kamera di ImageView menghilang setelah berpindah ke fragmen lain menggunakan komponen navigasi?

Nov 29 2020

Saya mencoba menangkap gambar menggunakan kamera kemudian hasil gambar akan ditempatkan pada ImageView saya dalam bentuk fragmenSeperti kode di bawah ini, jadi TIDAK mengambil jalur gambar dari Server kemudian menempatkannya di ImageView menggunakan Perpustakaan Glide, saya mengambil gambar dari kamera.

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

dan kemudian, saya pindah ke tujuan berikutnya menggunakan kode ini (dari fragmentA ke fragmentB)

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

tetapi ketika saya kembali ke FragmentA, gambar di ImageView menghilang. Saya yakin onDestroyFragmentA tidak dipanggil saat saya beralih ke FragmentB. Apakah ini normal ?

jadi untuk mengatasi masalah ini, untuk membuat gambar tetap ada, pertama-tama saya harus 'menyimpan' gambar di ViewModel? Apakah saya benar?

Jawaban

esentsov Dec 01 2020 at 03:14

Lihat siklus proses fragmen , terutama aliran siklus proses tampilan dan fragmen . Saat Anda menavigasi keluar dari sebuah fragmen, itu beralih ke CREATEDstatus (begitu onPausedan onStopdisebut), tetapi tampilan dimusnahkan (dan onDestroyViewdipanggil). Saat Anda menavigasi kembali ke fragmen ini, hierarki tampilan dibuat ulang (Anda onCreateViewdisebut). Jadi Anda harus mengatur url gambar Anda ke tampilan gambar lagi.