Ist es normal, wenn mein Bild von der Kamera in ImageView verschwindet, nachdem ich mithilfe der Navigationskomponente zu einem anderen Fragment übergegangen bin?
Ich versuche , ein Bild mit der Kamera dann dem Bilder zu erfassen wird unten auf meinem Image in einem fragmenta wie der Code platziert werden, so dass er es nicht ein Bild Weg vom Server holt , dann legen Sie sie in Image Glide Bibliothek verwenden, nehme ich ein Bild aus Kamera.
val image_uri = Uri.fromFile(photoFile)
photoImageView.setImageURI(image_uri)
und dann gehe ich mit diesem Code zum nächsten Ziel (von FragmentA zu FragmentB)
val toFragmentB = AFragmentDirections.actionGlobalBFragment()
findNavController().navigate(toFragmentB)
Wenn ich jedoch zu FragmentA zurückkehre, verschwindet das Bild in ImageView. Ich glaube, dass onDestroy
FragmentA nicht aufgerufen wird, wenn ich zu FragmentB übergehe. ist das normal ?
Um dieses Problem zu lösen und das Bild dauerhaft zu erhalten, muss ich das Bild zuerst in ViewModel speichern. habe ich recht?
Antworten
Überprüfen Sie den Fragmentlebenszyklus , insbesondere den Ansichts- und Fragmentlebenszyklusfluss . Wenn Sie aus einem Fragment heraus navigieren, wechselt es in den CREATED
Status (so onPause
und onStop
werden aufgerufen), aber die Ansicht wird zerstört (und onDestroyView
aufgerufen). Wenn Sie das nächste Mal zu diesem Fragment zurückkehren, wird die Ansichtshierarchie neu erstellt (Ihre onCreateView
wird aufgerufen). Daher sollten Sie Ihre Bild-URL erneut auf die Bildansicht einstellen.