Android.app Fragments बनाम android.support.v4.app ViewPager का उपयोग कर रहे हैं?


182

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

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

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

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

  2. यदि फ्रैगमेंट से android.appजाने का रास्ता है, तो दृष्टिकोण का इष्टतम तरीका क्या है ViewPagers?

  3. यदि SupportFragments कार्य के लिए सबसे उपयुक्त हैं, तो मैं अनुमान लगाऊंगा कि वे दूसरे की तरह ही कार्यक्षमता रखते हैं - तो उनके अंदर android.appक्या होने का उद्देश्य है ?

उम्मीद है कि एक स्पष्ट समझ वाला कोई व्यक्ति मुझे थोड़ा स्पष्टीकरण दे सकता है क्योंकि मैं चकित हूं ...


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

1
SupportFragmentAndroid SDK में एक वर्ग नहीं है ...
करकुरी

2
@Karakuri भ्रम के लिए क्षमा करें; मेरा मतलब शाब्दिक वर्ग से नहीं है SupportFragment, मैं केवल उस Fragmentकक्षा का उल्लेख कर रहा हूँ जिसमें उपलब्ध है android.support.v4.app
जोंस्टाफ

@jonstaff किसी भी तरह से आप केवल समर्थन पुस्तकालय में टुकड़े वर्ग का उपयोग कर सकते हैं
tyczj

@tyczj धन्यवाद, लेकिन यह वास्तव में सवाल का जवाब नहीं है। मैं एक के लिए और अधिक देख रहा हूँ क्यों , के बाद से मैं पहले से ही पता नहीं है वहाँ ViewPagerमें android.app
जोंस्टाफ

जवाबों:


183

आप android.support.v13.app पैकेज से एडेप्टर के साथ पैकेज ViewPagerसे देशी टुकड़ों के साथ उपयोग कर सकते हैं । आपको उसके लिए v13 सपोर्ट जार का उपयोग करना होगा।android.app

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

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

अपने स्वयं के अनुभव से मैं एंड्रॉइड के लिए विकसित होने पर भी समर्थन अंशों का उपयोग करने की सलाह दूंगा। यहां कुछ कारण हैं: फ्रैगमेंट या समर्थन फ्रैगमेंट?


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

support.v13 ViewPager के लिए काम करता है ... जब तक आप कोशिश करते हैं और एक DialogFragment में ViewPager का उपयोग करते हैं :-(
SteelBytes

android.appऐसा नहीं है FragmentPagerAdapterतो android.app.ragment के साथ व्यूपेयर का उपयोग करना असंभव हो गया है? किसी भी विचार यहाँ? क्या पुराने दृश्य पेजर के लिए कोई विकल्प है? तो दिए गए टैब के लिए गतिशील रूप से हुक के टुकड़े के रूप में
निखिल

@ निखिल, FragmentPagerAdapter के दो संस्करण हैं। android.support.v4.appपैकेज में एक समर्थन टुकड़ों के साथ काम करता है, दूसरा android.support.v13.app'सामान्य' टुकड़े के साथ
शानदार

मैं v13 का उपयोग करने की उम्मीद कर रहा था ताकि मैं v4 का उपयोग करने से बच सकूं। V4 निकला, v13 के लिए एक निर्भरता है, इसलिए मैं समर्थन टुकड़े / दृश्य पेजर का उपयोग कर सकता हूं।
वास

3

android.app.Fragmentएंड्रॉइड P ( लिंक ) के बाद से क्लास को हटा दिया गया है , इसलिए केवल android.support.v4.app.Fragmentहर जगह इस्तेमाल किया जाना चाहिए।


1

यदि आप API 11+ को लक्षित करने जा रहे हैं, तो आपको सहायता पुस्तकालय की आवश्यकता नहीं होगी [और आपका वास्तविक एपीके छोटा होगा, कम से कम)।

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

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


9
आपको ViewPager का उपयोग करने के लिए समर्थन पुस्तकालय का उपयोग करने की आवश्यकता है जो कि वह किस बारे में पूछ रहा है
tyczj

@ मैट आपके उत्तर के लिए धन्यवाद, लेकिन मैं सबसे अच्छे समाधान की तलाश कर रहा हूं जो ViewPagerकार्यक्षमता को शामिल करता है, और इस बात का स्पष्टीकरण कि वह समाधान सबसे अच्छा क्यों है।
जोंस्टाफ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.