से एक विशिष्ट खंड हटाएं एंड्रॉइड टैबलेट एप्लिकेशन के लिए मैं 2 टुकड़े का उपयोग करता हूं। स्क्रीन पर बाईं ओर एक और दाईं ओर एक। जब आप दाएं टुकड़े पर एक बटन पर क्लिक करते हैं, तो सही टुकड़े के शीर्ष पर एक और टुकड़ा जोड़ा जाएगा। यह खंड बैकस्टैक में जोड़ा गया है।एंड्रॉइड बैकस्टैक
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.add(R.id.fragmentlayout, fragment2);
ft.addToBackStack("Fragment2");
ft.commit();
backstack अब है:
[टुकड़ा 1] -> [टुकड़ा 2]
बाईं ओर भी एक बटन बाईं टुकड़ा के शीर्ष पर एक टुकड़ा खुलती (एक ही है खंड 2 के रूप में) और इसे बैकस्टैक में जोड़ता है। > [टुकड़ा 2] - -> [टुकड़ा 3]
टुकड़ा 2 पर एक बटन है कि टुकड़ा बंद करने के लिए है backstack अब
[टुकड़ा 1] है।
getFragmentManager().popBackStack("Fragment2", FragmentManager.POP_BACK_STACK_INCLUSIVE);
समस्या तब होती है जब मैं केवल [खंड 2] बंद करना चाहता हूं, [खंड 3] भी नष्ट हो जाएगा। मैं
FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction();
ft.remove(fragment2).commit();
फोन करके टुकड़ा manualy निकाल सकते हैं लेकिन backstack रहेगा
[टुकड़ा 1] -> [(भूत) टुकड़ा 2] -> [टुकड़ा 3]
तो आप की जरूरत एप्लिकेशन को बंद करने के लिए एक बार फिर से दबाएं।
क्या बैकस्टैक से केवल [खंड 2] को हटाने और स्क्रीन पर [खंड 3] छोड़ने का कोई तरीका है?
AFAIK, यह संभव नहीं है। यह एक कारण है जिसे इसे ढेर कहा जाता है। –
आपको खाली टुकड़े के साथ इसे बदलकर पिछले खंड को हटाने की जरूरत है, केवल तभी आप Fragment 3 छोड़ने में सक्षम होंगे। – GrIsHu