apakah normal jika gambar saya dari kamera di ImageView menghilang setelah berpindah ke fragmen lain menggunakan komponen navigasi?
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 onDestroy
FragmentA 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
Lihat siklus proses fragmen , terutama aliran siklus proses tampilan dan fragmen . Saat Anda menavigasi keluar dari sebuah fragmen, itu beralih ke CREATED
status (begitu onPause
dan onStop
disebut), tetapi tampilan dimusnahkan (dan onDestroyView
dipanggil). Saat Anda menavigasi kembali ke fragmen ini, hierarki tampilan dibuat ulang (Anda onCreateView
disebut). Jadi Anda harus mengatur url gambar Anda ke tampilan gambar lagi.