मैं वास्तव में एंड्रॉइड व्यूपेगर के जीवन चक्र से गड़बड़ कर रहा हूं, और मुझे लगता है कि मेरे ऐप की संरचना में कुछ गड़बड़ है। तो मुझे एक पुष्टिकरण चाहिए यदि मैं निम्नलिखित कर सकता हूं:एक प्रतिस्थापित ViewPager और बैकस्टैक का जीवन चक्र?
- मेरे पास कुछ टैब दिखाने वाला एक एप्लिकेशन है। उनमें से एक टैब ViewPager दिखा रहा है, जिसमें दो सूची फ़्रेगमेंट हैं। वे ListFragments ViewPager के ऑनक्रेट ईवेंट में बनाए गए हैं।
- जब आप ListFragments में से एक में एक आइटम पर क्लिक करें, यह एक अलग टुकड़ा करके पूरे ViewPagerFragment को बदल रहा है (जो एक और एक ListFrament है)।
यहाँ कोड है कि मैं नए ListFragment
FragmentManager fm = getFragmentManager();
android.support.v4.app.FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.container, new RequestForm(requestsList.get(itemIndex)));
ft.addToBackStack(null);
ft.commit();
वहां से साथ ViewPager बदलने के लिए कर रहा है, सब कुछ ठीक काम कर रहा है। लेकिन, उपयोगकर्ता वापस बटन पर क्लिक करते हैं, मैं निम्नलिखित स्थिति मिलती है:
- ViewPager (onCreateView से) ठीक पुन: लोड है, लेकिन ListFragment अंदर नहीं दिखाया जाएगा। मेरी ListFragment की वस्तु की तरह देखो अभी भी जीवित हैं, लेकिन यह है कि वे अपने दृश्य को खो दिया लगता है, और onCreateView इसे पुन: करने के लिए नहीं कहा है (क्योंकि वस्तु सोया नहीं था, जबकि ViewPager बाहर गया था)।
मैं अब और अधिक कोड पोस्ट नहीं कर रहा हूं, क्योंकि मेरा इरादा यह जानना है कि मैं क्या करने की कोशिश कर रहा हूं ठीक है या नहीं, एक एंड्रॉइड तरीके से सोच रहा है। क्या मैं एंड्रॉइड एसडीके के खिलाफ लड़ना चाहता हूं जो मैं करना चाहता हूं?
क्या ऊपर वर्णित सटीक एक ही समस्या थी और GetChildFragmentManager में गुज़रने के साथ एडाप्टर सेट करना समस्या हल हो गई। धन्यवाद! अब पिछली देखी गई स्थिति को स्टोर करने और बैकस्टैक पॉप करते समय इसे पुनर्स्थापित करने का तरीका पता लगाना होगा; – speedynomads
मेरे जीवन को बचाया। धन्यवाद। – Paul
कमाल! धन्यवाद! –