ViewPager2
| नया अपडेट | स्टेबल रिलीज़ | रिलीज़ कैंडिडेट | बीटा रिलीज़ | ऐल्फ़ा रिलीज़ |
|---|---|---|---|---|
| 14 मई, 2024 | 1.1.0 | - | - | - |
AndroidX डिपेंडेंसी
ViewPager2 का इस्तेमाल करने के लिए, अपने प्रोजेक्ट की build.gradle फ़ाइल में यह AndroidX डिपेंडेंसी जोड़ें:
ग्रूवी
dependencies { implementation "androidx.viewpager2:viewpager2:1.1.0" }
Kotlin
dependencies { implementation("androidx.viewpager2:viewpager2:1.1.0") }
सुझाव/राय दें या शिकायत करें
आपके सुझाव, शिकायत या राय से Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको कोई नई समस्या मिलती है या आपके पास इस लाइब्रेरी को बेहतर बनाने के लिए सुझाव हैं, तो हमें बताएं. कृपया नई समस्या सबमिट करने से पहले, इस लाइब्रेरी में शामिल मौजूदा समस्याओं को देखें. स्टार बटन पर क्लिक करके, किसी मौजूदा समस्या के लिए वोट किया जा सकता है.
ज़्यादा जानकारी के लिए, Issue Tracker का दस्तावेज़ देखें.
वर्शन 1.1.0
वर्शन 1.1.0
14 मई, 2024
androidx.viewpager2:viewpager2:1.1.0 रिलीज़ हो गया है. वर्शन 1.1.0 में ये बदलाव शामिल हैं.
1.0.0 के बाद हुए अहम बदलाव
- RecyclerView
1.3.1-rc01या इससे ऊपर के वर्शन के साथ इस्तेमाल करने पर होने वाले क्रैश की समस्या ठीक की गई है. ViewPager2अबCollectionInfoऔरCollectionItemInfoको सही तरीके से पॉप्युलेट करता है. RecyclerView1.2.0-alpha02और इसके बाद के वर्शन में, अब ये डिफ़ॉल्ट रूप से पॉप्युलेट नहीं होते हैं.FragmentTransactionCallbackमें होने वाले फ़्रैगमेंट लाइफ़साइकल में बदलावों को सुनने के लिए,FragmentTransactionCallbackइंटरफ़ेस जोड़ा गया.FragmentStateAdapterFragmentStateAdapterमें फ़्रैगमेंट जोड़ते समय, शुरुआती फ़्रैगमेंट मेन्यू के दिखने से जुड़ीFragmentStateAdapterसमस्या ठीक कर दी गई है.FragmentManager- विंडो इंसर्ट के डिसपैच की समस्या ठीक की गई: अब सभी पेजों को एक जैसे इंसर्ट मिलते हैं.
WindowInsetsको एपीआई के पुराने वर्शन (< API 30) पर इस तरह से भेजा जाता है कि इनसेट, सिबलिंग व्यू के लिए उपलब्ध नहीं हो पाते. इसलिए, अगर आपको < API 30 वाले डिवाइसों पर इनसेट लागू करने हैं, तो आपकोWindowInsetsApplier.install(viewPager2)के ज़रिए इस फ़िक्स के लिए ऑप्ट-इन करना होगा.
वर्शन 1.1.0-rc01
1 मई, 2024
androidx.viewpager2:viewpager2:1.1.0-rc01 को 1.1.0-beta02 के बाद से बिना किसी खास बदलाव के रिलीज़ किया गया है. वर्शन 1.1.0-rc01 में ये बदलाव शामिल हैं.
वर्शन 1.1.0-beta02
24 मई, 2023
androidx.viewpager2:viewpager2:1.1.0-beta02 रिलीज़ हो गया है. वर्शन 1.1.0-beta02 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
FragmentTransactionCallbackमें फ़्रैगमेंट की स्थिति सेव करने के लिए कॉलबैक जोड़े गए. (I45b90)ViewPager2अब एपीआई के पुराने वर्शन (< 30) केWindowInsetsडिस्पैच की समस्या को ठीक करने की कोशिश नहीं करता है, क्योंकि इस समस्या को ठीक करने सेViewPager2के सिबलिंग को नुकसान पहुंच सकता है. यह सुधार अब भी उपलब्ध है, लेकिन अब यह ऑप्ट-इन सुविधा बन गई है. इससे डेवलपर, हर मामले के हिसाब से फ़ैसला ले सकते हैं.WindowInsetsApplier.install(viewPager2))पर कॉल करके, इस समस्या को ठीक करने की सुविधा चालू करें. (Ic9a85)
गड़बड़ियां ठीक की गईं
RecyclerViewके नए वर्शन के साथ काम न करने की समस्याओं को ठीक किया गया है.ViewPager2के इस वर्शन का इस्तेमाल करने वाले लोगों को, कम से कमRecyclerView1.3.1-rc01 पर अपडेट करना चाहिए.
वर्शन 1.1.0-beta01
4 अगस्त, 2021
androidx.viewpager2:viewpager2:1.1.0-beta01 रिलीज़ हो गया है. वर्शन 1.1.0-beta01 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
Kotlin 1.4 का इस्तेमाल करने के लिए, androidx को अपग्रेड करें (Id6471, b/165307851, b/165300826)
सभी androidx लाइब्रेरी के लिए, Java 8 को टारगेट करने की सुविधा जोड़ी गई (2923f39)
गड़बड़ियां ठीक की गईं
- विंडो इंसर्ट के डिसपैच की समस्या ठीक की गई. अब सभी पेजों को एक जैसे इंसर्ट मिलते हैं. (I47fef)
वर्शन 1.1.0-alpha01
1 अप्रैल, 2020
androidx.viewpager2:viewpager2:1.1.0-alpha01 रिलीज़ हो गया है. वर्शन 1.1.0-alpha01 में ये बदलाव शामिल हैं.
इस रिलीज़ में, RecyclerView 1.2.0-alpha02 में बदलाव किया गया है. इसमें CollectionInfo और CollectionItemInfo को पॉप्युलेट किया गया है. RecyclerView अब डिफ़ॉल्ट रूप से यह सुविधा नहीं देता है. RecyclerView 1.2.0-alpha02 पर अपडेट करते समय, ViewPager2 को भी अपडेट करें, ताकि ऐक्सेसिबिलिटी से जुड़ी समस्याएं न हों.
नई सुविधाएं
FragmentTransactionCallbackमें होने वाले फ़्रैगमेंट लाइफ़साइकल में बदलावों को सुनने के लिए,FragmentTransactionCallbackइंटरफ़ेस जोड़ा गया.FragmentStateAdapter(Ibda77)
गड़बड़ियां ठीक की गईं
FragmentStateAdapterमें फ़्रैगमेंट जोड़ते समय, शुरुआती फ़्रैगमेंट मेन्यू के दिखने से जुड़ीFragmentStateAdapterसमस्या ठीक कर दी गई है.FragmentManager(I9d2ff, b/144442240)
वर्शन 1.0.0
वर्शन 1.0.0
20 नवंबर, 2019
androidx.viewpager2:viewpager2:1.0.0 को 1.0.0-rc01 वर्शन के बाद से बिना किसी बदलाव के रिलीज़ किया गया है. वर्शन 1.0.0 में ये बदलाव शामिल हैं.
1.0.0 वर्शन की मुख्य सुविधाएं
- ViewPager को लागू करने के पिछले तरीके में ये सुधार किए गए हैं:
- आरटीएल (दाईं से बाईं ओर) लेआउट के साथ काम करता है
- वर्टिकल ओरिएंटेशन के लिए सहायता
- भरोसेमंद
Fragmentसहायता (इसमेंFragmentकलेक्शन में किए गए बदलावों को मैनेज करना भी शामिल है) - डेटासेट में बदलाव के ऐनिमेशन (इसमें
DiffUtilकी सुविधा भी शामिल है)
- पिछले
ViewPagerवर्शन से आसानी से माइग्रेट किया जा सकता है. साथ ही, जहां भी संभव हो, एपीआई के फ़ंक्शन को एक जैसा रखा गया है. डेटा को दूसरी जगह भेजने से जुड़ी गाइड और सैंपल ऐप्लिकेशन देखें.
फ़्रैगमेंट के बीच स्लाइड करने के लिए, ViewPager2 का इस्तेमाल करने के बारे में गाइड देखें.
वर्शन 1.0.0-rc01
23 अक्टूबर, 2019
androidx.viewpager2:viewpager2:1.0.0-rc01 को 1.0.0-beta05 के बाद से बिना किसी बदलाव के रिलीज़ किया गया है. वर्शन 1.0.0-rc01 में ये बदलाव शामिल हैं.
वर्शन 1.0.0-beta05
9 अक्टूबर, 2019
androidx.viewpager2:viewpager2:1.0.0-beta05 रिलीज़ हो गया है. वर्शन 1.0.0-beta05 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
- स्क्रीन से बाहर मौजूद पेज पर
requestFocusकी वजह से पेज बदलने की समस्या को ठीक किया गया. अब यह ViewPager के मूल वर्शन के हिसाब से काम करता है. (b/140656866) - पेज बदलने के बाद, स्क्रीन से बाहर मौजूद पेज पर
focusके बने रहने की समस्या ठीक की गई. पेज बदलने पर, अब फ़ोकस हट जाता है. (b/140656866) - पेज बदलते समय,
Fragmentलेन-देन रोकने / फिर से शुरू करने के क्रम से जुड़ी समस्या को ठीक किया गया है. अब हम नया आइटम फिर से शुरू करने से पहले, हमेशा पुराने प्राइमरी आइटम को रोकते हैं. (b/139489059) canScrollHorizontally(int)औरcanScrollVertically(int)के लिए सुधार किया गया है. अब ये बताते हैं कि ViewPager2, दी गई दिशा में स्क्रोल कर सकता है या नहीं. (b/141848404)- ViewPager2 के साथ बेहतर तरीके से काम करने के लिए, SwipeRefreshLayout में मौजूद समस्या को ठीक किया गया है.
वर्शन 1.0.0-beta04
5 सितंबर, 2019
androidx.viewpager2:viewpager2:1.0.0-beta04 रिलीज़ हो गया है. इस वर्शन में शामिल बदलाव यहां देखे जा सकते हैं.
गड़बड़ियां ठीक की गईं
Fragmentबैक स्टैक से जुड़ीFragmentStateAdapterएज-केस की समस्या को ठीक किया गया. (b/139095195)EditTextके लिए सुधार किया गया है. कुछ एट्रिब्यूट कॉन्फ़िगरेशन की वजह से, टाइप करते समय या फ़ोकस करते समय स्क्रोल/पेज जंप हो रहा था. (b/138044582, b/139432498)ItemDecorationइंस्टेंस से जुड़ी समस्या को ठीक किया गया है. साथ ही, ओवरस्क्रोल इंडिकेटर की पोज़िशन से जुड़ी समस्या को हल करने का तरीका बताया गया है. (b/139012032)ViewPager2के साथ बेहतर तरीके से काम करने के लिए, अन्य कॉम्पोनेंट में कई समस्याएं ठीक की गई हैं: RecyclerView, NestedScrollView, और Navigation.
वर्शन 1.0.0-beta03
7 अगस्त, 2019
androidx.viewpager2:viewpager2:1.0.0-beta03 रिलीज़ हो गया है. इस वर्शन में शामिल बदलाव यहां देखे जा सकते हैं.
गड़बड़ियां ठीक की गईं
Fragmentकी कुछ समय के लिए उपलब्ध स्थिति के साथFragmentStateAdapterकी समस्या को ठीक किया गया है. b/134246546- डेटा-सेट में बदलाव होने पर, स्मूद स्क्रोलिंग के दौरान
currentItemऔरscrollStateसे जुड़ी समस्याओं को ठीक किया गया. इसमें कुछ खास मामलों को भी शामिल किया गया है. b/137642608 PageTransformer(इसमेंMarginPageTransformerभी शामिल है) और डेटा-सेट में बदलाव होने पर दिखने वाले ऐनिमेशन के बीच टकराव की समस्या ठीक की गई. b/134658996- बड़े डेटासेट में स्मूद-स्क्रोल एनिमेशन से जुड़ी समस्या ठीक की गई है (
floatपूर्णांक वैल्यू की सीमा). b/134858960
वर्शन 1.0.0-beta02
19 जुलाई, 2019
androidx.viewpager2:viewpager2:1.0.0-beta02 रिलीज़ हो गया है. इस वर्शन में शामिल बदलाव यहां देखे जा सकते हैं.
गड़बड़ियां ठीक की गईं
- अनजाने में जोड़ी गई jacoco डिपेंडेंसी को हटा दिया गया है. यह डिपेंडेंसी
1.0.0-beta01में जोड़ी गई थी. (b/137782951)
वर्शन 1.0.0-beta01
17 जुलाई, 2019
androidx.viewpager2:viewpager2:1.0.0-beta01 रिलीज़ हो गया है. इस वर्शन में शामिल बदलाव यहां देखे जा सकते हैं.
गड़बड़ियां ठीक की गईं
- स्क्रोल करते समय और डेटा-सेट अपडेट करते समय
ViewPager2.updateCurrentItemक्रैश होने की समस्या ठीक की गई ViewPager2.isLayoutRtlसे जुड़ेNullPointerExceptionक्रैश की समस्या ठीक की गईTOUCH_SLOP_PAGINGअब डिफ़ॉल्ट टच स्लोप है- खाली अडैप्टर के लिए
OnPageChangeCallbackइवेंट ठीक किए गए (ViewPager1के साथ समानता बनाए रखने के लिए, पेज-1के बजाय0)
मौजूदा समस्याएं
- हम स्टेबल वर्शन पर जाने से पहले, बची हुई समस्याओं को ठीक करने पर काम कर रहे हैं
वर्शन 1.0.0-alpha06
2 जुलाई, 2019
androidx.viewpager2:viewpager2:1.0.0-alpha06 रिलीज़ हो गया है. इस वर्शन में शामिल बदलाव यहां देखे जा सकते हैं.
यह एपीआई को फ़्रीज़ करने और बीटा वर्शन पर ले जाने से पहले, हमारा आखिरी प्लान किया गया ऐल्फ़ा वर्शन है. कृपया हमें एपीआई के बारे में सुझाव, शिकायत या राय दें.
नई सुविधाएं
- बेहतर ऐक्सेसिबिलिटी के लिए बुनियादी सुविधाएं:
ACTION_PAGE_RIGHT,ACTION_PAGE_DOWNवगैरह.
एपीआई में हुए बदलाव
FragmentStateAdapter: नॉन-प्राइमरी-आइटमFragments की संख्याSTARTEDपर सेट है. साथ ही, उनकेmenuVisibilityको false पर सेट किया गया है.PageTransformer,MarginPageTransformer,CompositePageTransformer:positionतय किए गए दस्तावेज़.
गड़बड़ियां ठीक की गईं
currentItemडेटा-सेट बदलने / अडैप्टर बदलने की समस्या ठीक होने के बाद.MarginPageTransformerकेoffscreenPageLimitसमस्या वाले कार्ड को छोटा करने से जुड़ी समस्या ठीक की गई.FakeDragमोड में सुलभता से जुड़ी कार्रवाइयों की समस्या ठीक की गई.
वर्शन 1.0.0-alpha05
5 जून, 2019
androidx.viewpager2:viewpager2:1.0.0-alpha05 रिलीज़ हो गया है. इस वर्शन में शामिल बदलाव यहां देखे जा सकते हैं.
नई सुविधाएं
ItemDecoratorकोRecyclerViewके मुताबिक काम करने के तरीके के साथ पेश किया गया है.MarginPageTransformerको इसलिए पेश किया गया है, ताकि पेजों के बीच स्पेस बनाया जा सके. यह स्पेस, पेज के इंसर्ट के बाहर होता है.CompositePageTransformerको इसलिए लॉन्च किया गया है, ताकि कईPageTransformerको एक साथ जोड़ा जा सके.
एपीआई में हुए बदलाव
FragmentStateAdapter#getItemतरीके का नाम बदलकरFragmentStateAdapter#createFragmentकर दिया गया है. पिछले तरीके के नाम की वजह से, पहले गड़बड़ियां हुई थीं.OFFSCREEN_PAGE_LIMIT_DEFAULTकी वैल्यू को0से बदलकर-1कर दिया गया है. अगरOFFSCREEN_PAGE_LIMIT_DEFAULTकॉन्स्टेंट का इस्तेमाल किया जाता है, तो क्लाइंट कोड में बदलाव करने की ज़रूरत नहीं है.
गड़बड़ियां ठीक की गईं
getCurrentItem()के व्यवहार को ठीक किया गया, जबSCROLL_STATE_SETTLINGको विपरीत दिशा में खींचने से रोका गया.- "गतिविधियां सेव न करें" कॉन्टेक्स्ट में,
FragmentStateAdapterक्लास लोडर से जुड़ी समस्याओं को ठीक किया गया. setOffscreenPageLimitदस्तावेज़ को बेहतर बनाया गया है.
वर्शन 1.0.0-alpha04
7 मई, 2019
androidx.viewpager2:viewpager2:1.0.0-alpha04 रिलीज़ हो गया है. इस वर्शन में शामिल बदलाव यहां देखे जा सकते हैं.
नई सुविधाएं
offscreenPageLimit: इससे व्यू हैरारकी में रखे गए पेजView/Fragmentकी संख्या को कंट्रोल किया जा सकता है
एपीआई में हुए बदलाव
orientationऔरisUserScrollableएट्रिब्यूट अबSavedStateका हिस्सा नहीं हैंsaveStateऔरrestoreStateतरीकों कोFragmentStateAdapterमें फ़ाइनल किया गयाViewPager2.OrientationऔरViewPager2.ScrollStateएनोटेशन को गैर-सार्वजनिक के तौर पर मार्क किया गया
गड़बड़ियां ठीक की गईं
SavedState:Activityके बंद होने या फिर से चालू होने पर, डेटा वापस लाने से जुड़ी समस्या को ठीक किया गयाSavedState: अडैप्टर सेट होने तक, डेटा को वापस लाने की प्रोसेस में देरी होती हैOnPageChangeCallback: कभी-कभार आने वाली छोटी समस्याएं ठीक की गईं
वर्शन 1.0.0-alpha03
3 अप्रैल, 2019
androidx.viewpager2:viewpager2:1.0.0-alpha03 रिलीज़ हो गया है. इस वर्शन में शामिल बदलाव यहां देखे जा सकते हैं.
नई सुविधाएं
- प्रोग्राम के हिसाब से ViewPager2 को स्क्रोल करने की सुविधा:
fakeDragBy(offsetPx).
एपीआई में हुए बदलाव
FragmentStateAdapterको अबLifecycleऑब्जेक्ट की ज़रूरत होती है. इसे होस्टFragmentActivityया होस्टFragmentसे पाने के लिए, दो यूटिलिटी कंस्ट्रक्टर जोड़े गए हैं.
गड़बड़ियां ठीक की गईं
Fragmentसे जुड़ी कई समस्याओं को ठीक किया गया:- स्क्रीन रोटेट होने या ऐप्लिकेशन के छोटा होने पर, डेटासेट के अपडेट को मैनेज करना;
- रोटेशन के बाद, काम के नहीं रहे फ़्रैगमेंट हटाना;
- हटाए गए आइटम की सेव की गई स्थिति को हटाया जा रहा है.
PageChangeCallback: मार्जिन वाले पेजों के लिए, पेज ऑफ़सेट की गिनती की समस्या ठीक की गई.
वर्शन 1.0.0-alpha02
13 मार्च, 2019
androidx.viewpager2:viewpager2:1.0.0-alpha02 रिलीज़ हो गया है. इस वर्शन में शामिल सभी बदलाव की पूरी सूची यहां देखी जा सकती है.
नई सुविधाएं
- उपयोगकर्ता के इनपुट को बंद करने की सुविधा (
setUserInputEnabled,isUserInputEnabled)
एपीआई में हुए बदलाव
- ViewPager2 क्लास फ़ाइनल
गड़बड़ियां ठीक की गईं
FragmentStateAdapterपरफ़ॉर्मेंस से जुड़ी समस्याएं ठीक की गई हैं
वर्शन 1.0.0-alpha01
7 फ़रवरी, 2019
androidx.viewpager2:viewpager2 1.0.0-alpha01 रिलीज़ हो गया है. यह ViewPager2 का पहला वर्शन है.
नई सुविधाएं
- इसकी तुलना पिछले वर्शन
android.support.v4.view.ViewPager(VP1) से करने पर:- दाएं से बाएं (आरटीएल) लेआउट के साथ काम करने की सुविधा
- वर्टिकल ओरिएंटेशन के लिए सहायता
notifyDataSetChangedपूरी तरह से काम कर रहा है (VP1 की गड़बड़ियां ठीक कर दी गई हैं)
एपीआई में हुए बदलाव
FragmentStateAdapterकोFragmentStatePagerAdapterसे बदल दिया गयाRecyclerView.AdapterकोPagerAdapterसे बदल दिया गयाregisterOnPageChangeCallbackकोaddPageChangeListenerसे बदल दिया गया
मौजूदा समस्याएं
- clipToPadding
- no fakeDrag
- JavaDoc
- ओरिएंटेशन के हिसाब से नेस्ट की गई पैरलल स्क्रोलिंग
- स्क्रीन पर न दिखने वाले ऑब्जेक्ट के लिए, सीमा कंट्रोल करने की सुविधा नहीं है
- को बेहतर TabLayout इंटिग्रेशन की ज़रूरत है
- no pageWidth setter (forced 100%/100%)
- पेज ट्रांसफ़ॉर्मर: हार्डवेयर/सॉफ़्टवेयर लेयर चुनने का विकल्प नहीं है; ड्राइंग के क्रम को उलटने का विकल्प नहीं है
- मौजूदा पेज से पहले कोई पेज डालने पर, मौजूदा आइटम को दिखता रहे
- कीबोर्ड नेविगेशन में सुधार की ज़रूरत है
FragmentStateAdapterस्थिरता / परफ़ॉर्मेंस में सुधार किए जा रहे हैं