मैं बस जोड़ना चाहता था: -
निम्नलिखित का उपयोग करके बैकस्ट से बाहर की ओर रोकना
fragmentManager.popBackStack ()
केवल लेन-देन से टुकड़े निकालने के बारे में है, यह स्क्रीन से टुकड़े को हटाने का कोई तरीका नहीं है। तो आदर्श रूप से, यह आपको दिखाई नहीं दे सकता है, लेकिन एक दूसरे के ऊपर दो या तीन टुकड़े हो सकते हैं, और बैक की प्रेस पर यूआई अव्यवस्थित, स्टैक्ड दिख सकता है।
बस एक सरल उदाहरण लेते हुए: -
मान लीजिए कि आपके पास एक टुकड़ा है जो Fragmnet B का उपयोग करके लोड करता है टुकड़ा करता है। करता है। इस लेनदेन को बचाने के लिए हम फिर से करते हैं। तो प्रवाह है: -
चरण 1 -> FragmentA-> FragmentB (हम FragmentB में चले गए, लेकिन Fragment A पृष्ठभूमि में है, दृश्यमान नहीं है)।
अब आप कुछ काम कर रहे हैं टुकड़ा में और सहेजें बटन दबाएं - जो सहेजने के बाद वापस खंड में जाना चाहिए।
चरण 2-> FragmentB को बचाने पर, हम वापस FragmentA पर जाते हैं।
चरण 3 -> इतनी सामान्य गलती होगी ... फ्रैग्मेंट बी में, हम फ्रैग्मेंटेशन के साथ टुकड़ा Manager.replace () टुकड़ा करेंगे।
लेकिन वास्तव में क्या हो रहा है, हम फिर से FragmentB की जगह Fragment A लोड कर रहे हैं। तो अब दो FragmentA हैं (एक STEP-1 से, और एक इस STEP-3 से)।
FragmentsA के दो उदाहरण एक दूसरे के ऊपर रखे गए हैं, जो कि दिखाई नहीं दे सकता है, लेकिन यह वहाँ है।
इसलिए भले ही हम उपरोक्त तरीकों से बैकस्टैक को स्पष्ट करते हैं, लेकिन लेन-देन को मंजूरी दे दी जाती है लेकिन वास्तविक अंशों को नहीं। तो आदर्श रूप से इस तरह के एक विशेष मामले में, सेव बटन के प्रेस पर आपको केवल fm.popBackStack () या करके टुकड़े में वापस जाने की आवश्यकता होती है fm.popBackImmediate () ।
तो सही Step3-> fm.popBackStack () वापस टुकड़े में जाएं, जो पहले से ही मेमोरी में है।