यदि नेविगेशन घटक का उपयोग करके किसी अन्य टुकड़े में सेगमेंट के बाद छवि में कैमरा से मेरी छवि गायब हो जाए तो क्या यह सामान्य है?

Nov 29 2020

मैं कैमरे का उपयोग करके एक छवि को कैप्चर करने का प्रयास करता हूं, फिर छवि परिणाम मेरे 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 में छवि को 'स्टोर' करना होगा? क्या मैं सही हू?

जवाब

esentsov Dec 01 2020 at 03:14

की जाँच करें टुकड़ा जीवन चक्र , विशेष रूप से देख सकते हैं और टुकड़ा जीवन चक्र प्रवाह । जब आप एक टुकड़े से बाहर नेविगेट करते हैं, तो यह CREATEDराज्य में बदल रहा है (इसलिए onPauseऔर onStopकहा जाता है), लेकिन दृश्य नष्ट होonDestroyView जाता है (और कहा जाता है)। अगली बार जब आप इस टुकड़े को वापस नेविगेट कर रहे हैं, तो दृश्य पदानुक्रम को फिर से बनाया गया है (आपका onCreateViewकहा जाता है)। इसलिए आपको अपनी छवि url को फिर से छवि दृश्य पर सेट करना चाहिए।