177

मेरे पास एंड्रॉइड सपोर्ट लाइब्रेरीज़, फ्रैगमेंट्स और एक विशिष्ट उदाहरण के रूप में ViewPager क्लास के बारे में एक प्रश्न है। मेरा इरादा एंड्रॉइड डेवलपर वेबसाइट (http://developer.android.com/training/animation/screen-slide.html या http://developer.android.com/training/implementing-navigation/lateral.html) पर दिए गए नमूने के समान कार्यक्षमता वाला ऐप बनाना है। अपने कोड को देखते हुए, मैंने देखा है कि वे android.support.v4.app लाइब्रेरी का उपयोग करते हैं, जो मेरे शोध से ViewPager कक्षा तक पहुंचने का एकमात्र तरीका है।एंड्रॉइड.एप फ्रैगमेंट बनाम android.support.v4.app ViewPager का उपयोग कर?

मेरी स्थिति में, मुझे पिछड़े संगतता में कोई रूचि नहीं है। न्यूनतम एपीआई स्तर 14 (आइसक्रीम सैंडविच) है और बिल्ड लक्ष्य 4.2 जेली बीन है। इसके सबसे सरल रूप में, मेरा ऐप ठीक उसी तरह करता है जैसा कि मैंने एंड्रॉइड देव वेबसाइट पर जोड़ा दूसरा डेमो - बस प्रत्येक टैब में सामग्री के साथ तीन टैब के बीच स्वाइप कर रहा है।

मैंने पढ़े गए सभी लेख/पोस्ट/उत्तर v4 समर्थन लाइब्रेरी का भारी पक्षपात करते हैं। अब मेरी के लिए, यद्यपि घना, प्रश्न (ओं):

  1. सबसे अच्छा तरीका है अपने आवेदन की संरचना करने के क्या है - android.support.v4.app का उपयोग कर, और इस तरह SupportFragments का उपयोग कर, या android.app में उपलब्ध कराई गई टुकड़े का उपयोग करने के लिए - और क्यों?

  2. यदि android.app से फ्रैगमेंट्स जाने का तरीका हैं, तो ViewPagers तक पहुंचने का सबसे अच्छा तरीका क्या है?

  3. यदि समर्थन फ़्रेगमेंट कार्य के लिए सबसे उपयुक्त हैं, तो मुझे लगता है कि उनके पास समान कार्यक्षमता है - तो android.app के अंदर उन्हें रखने का क्या उद्देश्य है?

उम्मीद है कि एक स्पष्ट समझ मुझे स्पष्टीकरण का एक सा दे सकते हैं, क्योंकि मैं कर रहा हूँ boggled के साथ किसी ...

+1

आप Fragments' उपयोग नहीं कर सकते 'यदि आप उपयोग कर रहे हैं' ViewPager' आप समर्थन पुस्तकालय 'SupportFragment' – tyczj

+1

उपयोग करने की आवश्यकता' SupportFragment' नहीं एंड्रॉयड एसडीके ... – Karakuri

+2

में एक वर्ग है @ भ्रष्टाचार के लिए कराकुरी क्षमा करें; मेरा मतलब शाब्दिक वर्ग 'सपोर्टफ्रैगमेंट' नहीं है, मैं केवल 'android.support.v4.app' में उपलब्ध 'फ्रैगमेंट' कक्षा का जिक्र कर रहा हूं। – jonstaff

उत्तर

183

पैकेज से पैकेज के एडाप्टर के साथ आप ViewPager का उपयोग कर सकते हैं। इसके लिए आपको v13 समर्थन जार का उपयोग करना होगा।

एडेप्टर कि ViewPager के साथ काम के दो संस्करण हैं, v4 पैकेज में लोगों देशी टुकड़े के साथ v13 में, समर्थन टुकड़े के साथ प्रयोग की जाने वाली लोगों के लिए हैं।

कारण अब दो खंड कार्यान्वयन ऐतिहासिक हैं: android.app पैकेज में फ्रैगमेंट केवल टैबलेट के लिए एंड्रॉइड 3 के साथ पेश किए गए थे और पुराने संस्करण चलाने वाले फ़ोनों पर टुकड़े लाने के लिए समर्थन लाइब्रेरी बनाई गई थी। एंड्रॉइड 4 पर आपके पास दोनों हैं।

अपने अनुभव से मैं एंड्रॉइड 4 के विकास के दौरान समर्थन टुकड़ों का उपयोग करने की सलाह दूंगा।यहाँ कुछ कारण हैं: Fragment or Support Fragment?

+3

इसके लिए धन्यवाद! मुझे पता है कि मैं पार्टी के लिए देर हो चुकी हूं, लेकिन इस जवाब ने मुझे बहुत मदद की। – Kyle

+0

support.v13 ViewPager के लिए काम करता है ... जब तक आप एक संवादप्रवाह में ViewPager का प्रयास नहीं करते हैं :-( – SteelBytes

+0

'android.app' में 'FragmentPagerAdapter' नहीं है, तो एंड्रॉइड.एप.फ्रैगमेंट के साथ व्यूपर का उपयोग करना असंभव हो गया है? यहां विचार करें? पुराने दृश्य पेजर के लिए कोई विकल्प है? इसलिए दिए गए टैब के लिए गतिशील रूप से टुकड़े को हुक करने के लिए – Nikhil

1

आप एपीआई 11+ लक्षित करने के लिए जा रहे हैं, तो आप समर्थन की जरूरत नहीं होगी लाइब्रेरी [और आपका वास्तविक एपीके कम से कम छोटा होगा)।

यदि आप एंड्रॉइड 3.x से पहले कुछ भी समर्थन करना चाहते हैं, तो आपको समर्थन लाइब्रेरी की आवश्यकता होगी।

क्या आप यही पूछ रहे हैं?

+9

आपको ViewPager का उपयोग करने के लिए समर्थन लाइब्रेरी का उपयोग करने की आवश्यकता है, जो वह आपके उत्तर के लिए – tyczj

+0

@Matt धन्यवाद के बारे में पूछ रहा है, लेकिन मैं सबसे अच्छा समाधान ढूंढ रहा हूं जिसमें 'ViewPager' कार्यक्षमता शामिल है, और उस समाधान का स्पष्टीकरण क्यों है श्रेष्ठ है। – jonstaff

संबंधित मुद्दे