मैं टुकड़ों को लागू करने के लिए एंड्रॉइड कम्पेटिबिलिटी लाइब्रेरी का उपयोग कर रहा हूं और लेआउट के नमूने को बढ़ा दिया है ताकि एक टुकड़े में एक बटन हो जो एक और टुकड़े से निकलता है।
बाईं ओर चयन फलक में मेरे पास 5 चुनिंदा आइटम हैं - A B C D E
।
प्रत्येक FragmentTransaction:replace
विवरण में एक टुकड़ा (के माध्यम से ) फलक लोड करता है -a b c d e
अब मैंने e
एक बटन रखने के लिए टुकड़े को बढ़ाया है जो e1
विवरण फलक में एक और टुकड़ा भी लोड करता है । मैंने इसे इस e
प्रकार किया है:
FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction();
ft.replace(R.id.details_frag, newFrag);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
ft.addToBackStack(null);
ft.commit();
अगर मैं निम्नलिखित चयन करूं:
E - e - e1 - D - E
फिर टुकड़ा e
विवरण फलक में है। यह ठीक है और मैं जो चाहता हूं। हालांकि, अगर मैं back
इस बिंदु पर बटन दबाता हूं तो यह कुछ नहीं करता है। मुझे इसे दो बार क्लिक करना होगा क्योंकि e1
स्टैक पर अभी भी है। इसके अलावा आसपास क्लिक करने के बाद मुझे onCreateView में एक शून्य सूचक अपवाद मिला:
इस समस्या को 'हल' करने के लिए जब भी मुझे चुना गया है, तो मैंने उसे जोड़ा A B C D E
:
FragmentManager fm = getActivity().getSupportFragmentManager();
for(int i = 0; i < fm.getBackStackEntryCount(); ++i) {
fm.popBackStack();
}
बस सोच रहा था कि क्या यह सही समाधान है या क्या मुझे कुछ अलग करना चाहिए?