मैं टुकड़ों को लागू करने के लिए एंड्रॉइड कम्पेटिबिलिटी लाइब्रेरी का उपयोग कर रहा हूं और लेआउट के नमूने को बढ़ा दिया है ताकि एक टुकड़े में एक बटन हो जो एक और टुकड़े से निकलता है।
बाईं ओर चयन फलक में मेरे पास 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();
}
बस सोच रहा था कि क्या यह सही समाधान है या क्या मुझे कुछ अलग करना चाहिए?