मैं 4.0 और 4.1 टैबलेट के लिए एक ऐप लिख रहा हूं, जिसके लिए मैं समर्थन पुस्तकालयों का उपयोग नहीं करना चाहता हूं (यदि आवश्यक नहीं है) लेकिन 4.x एपीआई केवल इसलिए।
इसलिए मेरा लक्ष्य प्लेटफ़ॉर्म बहुत अच्छी तरह से परिभाषित किया गया है:> = 4.0 और <= 4.1
एप्लिकेशन में एक बहु-फलक लेआउट (दो टुकड़े, बाईं ओर एक छोटा, दाईं ओर एक सामग्री टुकड़ा) और टैब के साथ एक एक्शन बार है।
इसके समान:
एक्शन बार पर एक टैब पर क्लिक करने से 'बाहरी' टुकड़ा बदल जाता है, और फिर आंतरिक टुकड़ा दो नेस्टेड टुकड़ों (1. छोटी सूची के टुकड़े, 2. व्यापक सामग्री टुकड़ा) के साथ एक टुकड़ा है।
मैं अब सोच रहा हूं कि टुकड़ों को बदलने और विशेष रूप से नेस्टेड टुकड़ों को बदलने के लिए सबसे अच्छा अभ्यास क्या है। ViewPager समर्थन पुस्तकालय का हिस्सा है, इस वर्ग के लिए कोई मूल 4.x विकल्प नहीं है। मेरे अर्थ में 'पदावनत' होना प्रकट होता है। - http://developer.android.com/reference/android/support/v4/view/ViewPager.html
फिर मैंने एंड्रॉइड 4.2 के लिए रिलीज़ नोट्स को पढ़ा ChildFragmentManager
, जिसके बारे में , जो एक अच्छा होगा, लेकिन मैं 4.0 और 4.1 को लक्षित कर रहा हूं, इसलिए इसका उपयोग या तो नहीं किया जा सकता है।
ChildFragmentManager
केवल 4.2 में उपलब्ध है
- http://developer.android.com/about/versions/android-4.2.html#NestedFragments
- http://developer.android.com/reference/android/app/Fragment.html#getChildFragmentManager ()
दुर्भाग्य से, वहाँ शायद ही कोई अच्छा उदाहरण है कि समर्थन पुस्तकालय के बिना टुकड़े usages के लिए सबसे अच्छा अभ्यास दिखा, यहां तक कि पूरे Android डेवलपर गाइड में; और विशेष रूप से नेस्टेड टुकड़ों के बारे में कुछ भी नहीं।
इसलिए मुझे आश्चर्य हो रहा है: क्या यह संभव नहीं है कि समर्थन पुस्तकालय और इसके साथ आने वाली हर चीज का उपयोग किए बिना नेस्टेड टुकड़ों के साथ 4.1 ऐप लिखना संभव है? (FragmentActivity के बजाय Fragment, आदि का उपयोग करने की आवश्यकता है?) या सबसे अच्छा अभ्यास क्या होगा?
वर्तमान में विकास में मुझे जो समस्या हो रही है वह वास्तव में यह कथन है:
एंड्रॉइड सपोर्ट लाइब्रेरी अब नेस्टेड टुकड़ों का भी समर्थन करती है, इसलिए आप एंड्रॉइड 1.6 और उच्चतर पर नेस्टेड टुकड़ा डिजाइनों को लागू कर सकते हैं।
नोट: जब आप उस लेआउट को शामिल करते हैं, तो आप एक टुकड़े को एक टुकड़े में नहीं बढ़ा सकते
<fragment>
। घोंसले के टुकड़े का समर्थन केवल तब किया जाता है जब एक टुकड़े को गतिशील रूप से जोड़ा जाता है।
क्योंकि मैंने XML में नेस्टेड अंशों को परिभाषित किया है, जो स्पष्ट रूप से त्रुटि का कारण बनता है:
Caused by: java.lang.IllegalArgumentException: Binary XML file line #15: Duplicate id 0x7f090009, tag frgCustomerList, or parent id 0x7f090008 with another fragment for de.xyz.is.android.fragment.CustomerListFragment_
फिलहाल, मैं अपने लिए निष्कर्ष निकालता हूं: यहां तक कि 4.1 पर, जब मैं 2.x प्लेटफ़ॉर्म को भी लक्षित नहीं करना चाहता हूं, तो स्क्रीनशॉट में दिखाए गए नेस्टेड टुकड़े समर्थन पुस्तकालय के बिना संभव नहीं हैं।
(यह वास्तव में एक प्रश्न से विकी प्रविष्टि का अधिक हो सकता है, लेकिन शायद किसी और ने इसे पहले प्रबंधित किया है)।
अपडेट करें:
एक उपयोगी उत्तर है: फ्रैगमेंट इनसाइड फ्रैगमेंट
ActionBar
(सैमसंग द्वारा निर्मित घर) के कस्टम कार्यान्वयन का सामना कर सकते हैं । ActionBarSherlock पर करीब से नज़र डालें, अगर कमरे में है तो यह ActionBar में टैब है।