यदि नेविगेशन घटक का उपयोग करके किसी अन्य टुकड़े में सेगमेंट के बाद छवि में कैमरा से मेरी छवि गायब हो जाए तो क्या यह सामान्य है?
मैं कैमरे का उपयोग करके एक छवि को कैप्चर करने का प्रयास करता हूं, फिर छवि परिणाम मेरे ImageView पर एक खंड में कोड की तरह नीचे रखा जाएगा, इसलिए यह सर्वर से एक छवि पथ नहीं ला रहा है, फिर इसे Glide लाइब्रेरी का उपयोग करके ImageView में रखें, मैं एक छवि लेता हूं कैमरा।
val image_uri = Uri.fromFile(photoFile)
photoImageView.setImageURI(image_uri)
और फिर, मैं इस कोड का उपयोग करके अगले स्थान पर जाता हूं (टुकड़ा से टुकड़ा तक)
val toFragmentB = AFragmentDirections.actionGlobalBFragment()
findNavController().navigate(toFragmentB)
लेकिन जब मैं वापस FragmentA में जाता हूं, तो ImageView में छवि गायब हो जाती है। मेरा मानना onDestroy
है कि जब मैं FragmentB से बहस करता हूं तो मुझे FragmentA नहीं कहा जाता है। क्या यह सामान्य है ?
इसलिए इस मुद्दे को हल करने के लिए, छवि को बनाए रखने के लिए, पहले मुझे ViewModel में छवि को 'स्टोर' करना होगा? क्या मैं सही हू?
जवाब
की जाँच करें टुकड़ा जीवन चक्र , विशेष रूप से देख सकते हैं और टुकड़ा जीवन चक्र प्रवाह । जब आप एक टुकड़े से बाहर नेविगेट करते हैं, तो यह CREATED
राज्य में बदल रहा है (इसलिए onPause
और onStop
कहा जाता है), लेकिन दृश्य नष्ट होonDestroyView
जाता है (और कहा जाता है)। अगली बार जब आप इस टुकड़े को वापस नेविगेट कर रहे हैं, तो दृश्य पदानुक्रम को फिर से बनाया गया है (आपका onCreateView
कहा जाता है)। इसलिए आपको अपनी छवि url को फिर से छवि दृश्य पर सेट करना चाहिए।