के बीच अंतर android.app.Fragment
और android.support.v4.app.Fragment
के बीच क्या अंतर है, और किन परिस्थितियों में प्रत्येक का उपयोग किया जाना चाहिए?android.app.Fragment और android.support.v4.app.Fragment
उत्तर
android.support.v4.app.Fragment
एंड्रॉइड समर्थन लाइब्रेरी में Fragment कक्षा है, जो एक संगतता पैकेज है जो आपको एंड्रॉइड के पुराने संस्करणों पर एंड्रॉइड की कुछ नई सुविधाओं का उपयोग करने की अनुमति देता है।
android.app.Fragment
एंड्रॉइड एसडीके के मूल संस्करण में Fragment कक्षा है। यह एंड्रॉइड 3 (एपीआई 11) में पेश किया गया था।
यदि आप अपने ऐप को टुकड़ों का उपयोग करना चाहते हैं, और एपीआई 11 से पहले डिवाइस को लक्षित करना चाहते हैं, तो आपको android.support.v4.app.Fragment
का उपयोग करना होगा। हालांकि, अगर आप केवल एपीआई 11 या ऊपर चल रहे डिवाइस को लक्षित कर रहे हैं, तो आप android.app.Fragment
का उपयोग कर सकते हैं।
मैं विशेष रूप से android.support.v4.app.Fragment
का उपयोग करता हूं।
मेरे द्वारा लिखे गए सभी ऐप्स को Android 2.3 पर वापस समर्थन करने की आवश्यकता है और यह करने का यह सबसे आसान तरीका है।
यदि आप 11+ का समर्थन कर रहे हैं तो android.app.Fragment
पर चिपके रहें।
उस मामले में आपको लगता है कि समर्थन में मौजूद सुविधाओं का एक बहुत से वंचित रह जाएंगे लाइब्रेरी लेकिन केवल एक निश्चित एपीआई स्तर के बाद मूल में। getChildFragmentManager() उदाहरण के लिए स्तर तक उपलब्ध नहीं है 17. मेरी सलाह केवल समर्थन टुकड़े का उपयोग करें और बहाना है कि देशी एक अस्तित्व में नहीं है के लिए है। – Johan
android.support.v4.app.Fragment
एक ऐसी लाइब्रेरी है जिसका उपयोग आप पुराने एपीआई संस्करण के लिए पिछड़ा-संगतता प्राप्त करने के लिए कर सकते हैं।
एपीआई स्तर 11 (अन्य सुविधाओं के साथ) पर टुकड़े जोड़े गए थे, आपको उस क्रिया को प्री-एपीआई 11 उपकरणों में विस्तारित करने के लिए उस लाइब्रेरी को शामिल करना चाहिए। यह एक उपयोगी लाइब्रेरी है और मैं एक्शनबैरशेलॉक पर एक नज़र रखने का सुझाव देता हूं, जो प्री-एपीआई v11 उपकरणों पर एक्शन बार बढ़ाता है।
यदि आपका एप्लिकेशन एपीआई 11 या उससे ऊपर के लिए लक्षित है, तो आप android.app.Fragment
का उपयोग कर सकते हैं और आपकी एपीके फ़ाइल छोटी होगी।
अन्यथा, आदेश पुराने Android API संस्करण (एंड्रॉयड 3.x) का समर्थन करने के अपने प्रोजेक्ट में android.support.v4.app.Fragment
पुस्तकालय जोड़ें।
जवाब बहुत सही कर रहे हैं
लेकिन समय बीत चुका है और https://en.wikipedia.org/wiki/Android_version_history के अनुसार यह काफी दुर्लभ है कि आपका नया Android एप्लिकेशन से कम 11
Android SDK के उपकरणों का समर्थन करना चाहिए के रूप में तो आप के बारे में भूल सकता है android.support.v4.app.Fragment
और अपने ऐप में सुरक्षित रूप से android.app.Fragment
का उपयोग करें।
इसके अलावा "समर्थन पुस्तकालय के बिना FragmentStatePagerAdapter का उपयोग करना" देखें: http://stackoverflow.com/questions/18512294/using-fragmentstatepageradapter-without-support-library – CJBS
आप onAttach() ओवरराइड, तो कृपया इस सूत्र देखें कि यह नहीं से बचने के लिए android.app.Fragment साथ कुछ परिस्थितियों में बुलाया जा रहा है: https://stackoverflow.com/questions/32083053/android-fragment-onattach-deprecated – Hong