मैं टुकड़े सीख रहा हूं लेकिन मैं इस बात को समझने में असफल रहा हूं कि टुकड़ों को कंटेनर की आवश्यकता क्यों है।एंड्रॉइड के लिए Fragments में कंटेनर का उद्देश्य
तरह से मैं टुकड़े को समझने के काम इस प्रकार है:
FragmentActivity setContentview एक xml फ़ाइल जो को परिभाषित करता है जहां टुकड़े स्थित होगा को दर्शाता है।
FragmentActivity तो कंटेनर के लिए टुकड़ा प्रदान करती है टुकड़े
के कहने पैदा करता है।
FragmentManager फिर उन्हें प्रदर्शित करता है।
वास्तविक टुकड़ा वर्ग तब लेआउट को बढ़ाता है, और यह यह लेआउट है जो में सभी एप्लिकेशन UI घटक शामिल हैं।
(अगर मुझे यहां कुछ याद आती है तो कृपया मुझे सही करें क्योंकि मैं केवल इस समय सीख रहा हूं)।
तो कंटेनर का उद्देश्य क्यों है, मुझे उन सभी उदाहरणों में क्यों आवश्यकता है क्योंकि मैंने देखा है कि यह सिर्फ एक खाली रिश्तेदार लेआउट xml दस्तावेज़ है।
क्या विभिन्न टुकड़े समान कंटेनर साझा कर सकते हैं (क्योंकि यह केवल एक सापेक्ष लेटआउट xml फ़ाइल है)?
गूगल http://developer.android.com/training/basics/fragments/creating.htmlद्वारा प्रदान की वे एक ListFragment है और जब आइटम कॉलबैक इंटरफ़ेस के उपयोग के माध्यम से चयन किया जाता है हम अंततः वापस कोड की इस पंक्ति को पाने के उदाहरण में
तो:
// Replace whatever is in the fragment_container view with this fragment,
// and add the transaction to the back stack so the user can navigate back
transaction.replace(R.id.fragment_container, newFragment);
मेरे अन्य सवाल यह है:
1) कोड की यह पंक्ति लेख खंड के साथ ListFragment (बाएं तरफ टुकड़े) को प्रतिस्थापित क्यों नहीं करती है। जब से इसे प्रारंभ किया गया था, तब से हम देखते हैं:
getSupportFragmentManager().beginTransaction()
.add(R.id.fragment_container, firstFragment).commit();
इसके बजाय ... सूचीफलकमेंट बाईं ओर बनी हुई है और सही टुकड़ा अद्यतन किया गया है। लेकिन कंटेनर fragment_container पहले से संबंधित है फ्रैगमेंट यह सूचीफ्रेगमेंट है। और यह वह नहीं है जो अद्यतन हो जाता है।
क्या आप देखते हैं कि मेरे पास सवाल क्यों है? यह ट्यूटोरियल में समझाया नहीं गया है।
कथन "तो आपको एक विशेष प्रकार की गतिविधि की आवश्यकता है जो टुकड़े को संभाल सके - यह फ्रैगमेंट एक्टिविटी है।" एंड्रॉइड के पुराने संस्करणों के बारे में सच है और जब आप समर्थन पुस्तकालयों का उपयोग कर रहे हैं। वर्तमान संस्करण (जैसे एंड्रॉइड एपीआई 1 9) में, डिफ़ॉल्ट गतिविधि में पहले से ही खंड कार्यक्षमता है। जैसे getFragmentManager() फ़ंक्शन: http://developer.android.com/reference/android/app/Activity.html#getFragmentManager() – treesAreEverywhere
कंटेनर में किसी विशेष खंड को कैसे प्रतिस्थापित करें जिसमें नए टुकड़े के साथ कई टुकड़े होते हैं? –
टुकड़े को प्रतिस्थापित करना एक ही कंटेनर साझा करने वाले विभिन्न टुकड़ों के समान नहीं है। दो टुकड़े एक कंटेनर साझा नहीं कर सकते हैं अगर किसी को दूसरे द्वारा प्रतिस्थापित किया गया हो। – craned