ViewPager2
آخرین به روز رسانی | انتشار پایدار | کاندید را آزاد کنید | نسخه بتا | انتشار آلفا |
---|---|---|---|---|
14 مه 2024 | 1.1.0 | - | - | - |
وابستگی های AndroidX
برای استفاده از ViewPager2
، وابستگی AndroidX زیر را به فایل build.gradle
پروژه خود اضافه کنید:
شیار
dependencies { implementation "androidx.viewpager2:viewpager2:1.1.0" }
کاتلین
dependencies { implementation("androidx.viewpager2:viewpager2:1.1.0") }
بازخورد
بازخورد شما به بهتر شدن Jetpack کمک می کند. اگر مسائل جدیدی کشف کردید یا ایده هایی برای بهبود این کتابخانه دارید، به ما اطلاع دهید. لطفاً قبل از ایجاد کتابخانه جدید، به مسائل موجود در این کتابخانه نگاهی بیندازید. با کلیک کردن روی دکمه ستاره می توانید رای خود را به یک موضوع موجود اضافه کنید.
برای اطلاعات بیشتر به مستندات ردیاب مشکل مراجعه کنید.
نسخه 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
برای گوش دادن به تغییرات چرخه عمر قطعه که درFragmentStateAdapter
اتفاق میافتد اضافه شد. - مشکل
FragmentStateAdapter
با نمایان شدن منوی قطعه اولیه هنگام افزودن یک قطعه بهFragmentManager
برطرف شد. - ارسال ثابت ورودیهای پنجره: اکنون همه صفحات همان ورودیها را دریافت میکنند. با توجه به نحوه ارسال
WindowInsets
در نسخههای API قدیمی (< API 30) که میتواند از در دسترس بودن insetها برای نماهای خواهر و برادر جلوگیری کند، اگر میخواهید در دستگاههای < API 30 Insetها اعمال شود، باید از طریقWindowInsetsApplier.install(viewPager2)
این اصلاح را انتخاب کنید. .
نسخه 1.1.0-rc01
1 مه 2024
androidx.viewpager2:viewpager2:1.1.0-rc01
بدون هیچ تغییر قابل توجهی از نسخه 1.1.0-beta02 منتشر شد. نسخه 1.1.0-rc01 حاوی این commit ها است.
نسخه 1.1.0-beta02
24 مه 2023
androidx.viewpager2:viewpager2:1.1.0-beta02
منتشر شد. نسخه 1.1.0-beta02 حاوی این تعهدات است.
تغییرات API
- به
FragmentTransactionCallback
اضافه شده است. ( I45b90 ) -
ViewPager2
اکنون دیگر تلاش نمیکند تا ارسال خرابWindowInsets
نسخههای API قدیمی (< 30) را برطرف کند، زیرا خود این اصلاح میتواند برای خواهر و برادرViewPager2
مضر باشد. این اصلاح هنوز در دسترس است، اما به یک گزینه انتخابی تبدیل شده است، بنابراین توسعه دهندگان می توانند بر اساس مورد به مورد تصمیم بگیرند. رفع مشکل را با فراخوانیWindowInsetsApplier.install(viewPager2))
فعال کنید. ( IC9a85 )
رفع اشکال
- مشکلات سازگاری را با نسخه های جدیدتر
RecyclerView
برطرف کنید. کاربران این نسخه ازViewPager2
باید حداقل بهRecyclerView
1.3.1-rc01 به روز رسانی کنند.
نسخه 1.1.0-beta01
4 آگوست 2021
androidx.viewpager2:viewpager2:1.1.0-beta01
منتشر شد. نسخه 1.1.0-beta01 حاوی این تعهدات است.
تغییرات API
Androidx را برای استفاده از Kotlin 1.4 ارتقا دهید ( Id6471 , b/165307851 , b/165300826 )
حرکت به جاوا 8 برای همه کتابخانه های اندرویدیکس ( 2923f39 )
رفع اشکال
- ارسال ثابت ورودیهای پنجره، اکنون همه صفحات همان ورودیها را دریافت میکنند. ( I47fef )
نسخه 1.1.0-alpha01
1 آوریل 2020
androidx.viewpager2:viewpager2:1.1.0-alpha01
منتشر شد. نسخه 1.1.0-alpha01 حاوی این commit ها است.
این نسخه همراه با تغییر RecyclerView 1.2.0-alpha02 با پر کردن CollectionInfo
و CollectionItemInfo
است که RecyclerView
دیگر به طور پیشفرض ارائه نمیکند. هنگام بهروزرسانی به RecyclerView 1.2.0-alpha02
ViewPager2
نیز بهروزرسانی کنید تا از رگرسیون دسترسی جلوگیری کنید.
ویژگی های جدید
- رابط
FragmentTransactionCallback
برای گوش دادن به تغییرات چرخه عمر قطعه که درFragmentStateAdapter
اتفاق میافتد اضافه شد. ( ابدا77 )
رفع اشکال
- مشکل
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 قبلی:
- پشتیبانی از طرح RTL (راست به چپ).
- پشتیبانی از جهت گیری عمودی
- پشتیبانی
Fragment
قابل اعتماد (از جمله تغییرات در دستکاری در مجموعهFragment
زیرین) - انیمیشن های تغییر مجموعه داده (از جمله پشتیبانی
DiffUtil
)
- انتقال آسان از اجرای
ViewPager
قبلی (تعادل API در صورت امکان). راهنمای مهاجرت و نمونه برنامه را ببینید.
راهنمای استفاده از ViewPager2 برای اسلاید بین قطعات را ببینید.
نسخه 1.0.0-rc01
23 اکتبر 2019
androidx.viewpager2:viewpager2:1.0.0-rc01
بدون تغییر از 1.0.0-beta05
منتشر شده است. نسخه 1.0.0-rc01 حاوی این commit ها است .
نسخه 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 ) - یک مشکل در SwipeRefreshLayout برای کار بهتر با ViewPager2 برطرف شد.
نسخه 1.0.0-beta04
5 سپتامبر 2019
androidx.viewpager2:viewpager2:1.0.0-beta04
منتشر شد. commit های موجود در این نسخه را می توانید در اینجا بیابید.
رفع اشکال
- مشکل حاشیهای
FragmentStateAdapter
با پشتهFragment
را برطرف کنید. ( b/139095195 ) -
EditText
را با پیکربندیهای مشخصه مشخص کنید که باعث پرش اسکرول/صفحه در تایپ/فوکوس میشود. ( b/138044582 , b/139432498 ) - رفع مشکل در موارد
ItemDecoration
و راهحلی برای موقعیتیابی نشانگر overscroll. ( b/139012032 ) - تعدادی از مشکلات در سایر مؤلفهها رفع شد تا با
ViewPager2
بهتر کار کند: RecyclerView ، NestedScrollView ، و Navigation .
نسخه 1.0.0-beta03
7 آگوست 2019
androidx.viewpager2:viewpager2:1.0.0-beta03
منتشر شد. commit های موجود در این نسخه را می توانید در اینجا بیابید.
رفع اشکال
- مشکل
FragmentStateAdapter
با وضعیتFragment
گذرا را برطرف کنید. ب/134246546 - هنگامی که یک مجموعه داده در حین پیمایش صاف تغییر میکند، مشکلات
currentItem
وscrollState
را برطرف کنید. ب/137642608 - انیمیشنهای
PageTransformer
(از جملهMarginPageTransformer
) که با انیمیشنهای تغییر مجموعه دادهها در تضاد هستند را برطرف کنید. ب/134658996 - رفع انیمیشن های اسکرول صاف در مجموعه داده های بزرگ (محدودیت مقدار عدد صحیح
float
). ب/134858960
نسخه 1.0.0-beta02
19 جولای 2019
androidx.viewpager2:viewpager2:1.0.0-beta02
منتشر شد. commit های موجود در این نسخه را می توانید در اینجا بیابید.
رفع اشکال
- وابستگی ناخواسته jacoco که در
1.0.0-beta01
معرفی شده بود حذف شد. ( b/137782951 )
نسخه 1.0.0-beta01
17 جولای 2019
androidx.viewpager2:viewpager2:1.0.0-beta01
منتشر شد. commit های موجود در این نسخه را می توانید در اینجا بیابید.
رفع اشکال
- رفع خرابی
ViewPager2.updateCurrentItem
هنگام پیمایش و بهروزرسانی مجموعه داده - رفع خرابی
NullPointerException
مربوط بهViewPager2.isLayoutRtl
-
TOUCH_SLOP_PAGING
اکنون یک شیب لمسی پیشفرض است - رویدادهای
OnPageChangeCallback
برای آداپتورهای خالی ثابت شد (صفحه0
به جای-1
برای برابری باViewPager1
)
مسائل شناخته شده
- ما هنوز در حال کار روی مسائل باز باقی مانده قبل از انتقال به Stable هستیم
نسخه 1.0.0-alpha06
2 جولای 2019
androidx.viewpager2:viewpager2:1.0.0-alpha06
منتشر شد. commit های موجود در این نسخه را می توانید در اینجا بیابید.
این آخرین آلفای برنامه ریزی شده ما قبل از مسدود کردن API و انتقال به نسخه بتا است - لطفاً بازخورد API را به ما ارائه دهید.
ویژگی های جدید
- مبانی دسترسی بهبودیافته:
ACTION_PAGE_RIGHT
،ACTION_PAGE_DOWN
، و غیره.
API تغییر می کند
-
FragmentStateAdapter
:Fragment
غیراصلی باSTARTED
محدود میشوند وmenuVisibility
روی false تنظیم میشود. -
PageTransformer
،MarginPageTransformer
،CompositePageTransformer
: مستندات برایposition
ثابت است.
رفع اشکال
-
currentItem
پس از تغییر مجموعه داده / تغییر آداپتور ثابت شد. -
MarginPageTransformer
با مشکلoffscreenPageLimit
رفع شد. - اقدامات دسترسپذیری در حالی که در
FakeDrag
رفتار میکنید ثابت شد.
نسخه 1.0.0-alpha05
5 ژوئن 2019
androidx.viewpager2:viewpager2:1.0.0-alpha05
منتشر شد. commit های موجود در این نسخه را می توانید در اینجا بیابید.
ویژگی های جدید
-
ItemDecorator
با رفتاری مطابق باRecyclerView
معرفی شد. -
MarginPageTransformer
برای ارائه توانایی ایجاد فضای بین صفحات (خارج از درج صفحه) معرفی شد. -
CompositePageTransformer
برای ارائه توانایی ترکیب چندینPageTransformer
معرفی شد.
API تغییر می کند
- روش
FragmentStateAdapter#getItem
بهFragmentStateAdapter#createFragment
تغییر نام داد - نام روش قبلی ثابت کرده است که در گذشته منبع اشکال بوده است. - مقدار
OFFSCREEN_PAGE_LIMIT_DEFAULT
از0
به-1
تغییر کرد. در صورت استفاده از ثابتOFFSCREEN_PAGE_LIMIT_DEFAULT
، نیازی به تغییر کد مشتری نیست.
رفع اشکال
- وقتی
SCROLL_STATE_SETTLING
توسط یک کشیدن در جهت مخالف قطع شود، رفتارgetCurrentItem()
تصحیح شد. - مشکلات بارکننده کلاس
FragmentStateAdapter
که در زمینه «فعالیتها را حفظ نکنید». - اسناد
setOffscreenPageLimit
بهبود یافته است.
نسخه 1.0.0-alpha04
7 مه 2019
androidx.viewpager2:viewpager2:1.0.0-alpha04
منتشر شد. commit های موجود در این نسخه را می توانید در اینجا بیابید.
ویژگی های جدید
-
offscreenPageLimit
: امکان کنترل دقیق تعدادView
صفحه/Fragment
در سلسله مراتب مشاهده را فراهم می کند.
API تغییر می کند
-
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
منتشر شد. commit های موجود در این نسخه را می توانید در اینجا بیابید.
ویژگی های جدید
- امکان اسکرول برنامهنویسی ViewPager2:
fakeDragBy(offsetPx)
.
API تغییر می کند
- اکنون
FragmentStateAdapter
به یک شیءLifecycle
نیاز دارد. دو سازنده ابزار برای به دست آوردن آن از HostFragmentActivity
یا HostFragment
اضافه شدند.
رفع اشکال
- تعداد زیادی رفع پشتیبانی
Fragment
:- مدیریت بهروزرسانیهای مجموعه داده در حین به حداقل رساندن، یا در حین چرخش صفحه.
- حذف قطعات نامربوط پس از چرخش.
- حذف وضعیت ذخیره شده موارد حذف شده
-
PageChangeCallback
: محاسبه افست صفحه ثابت برای صفحات دارای حاشیه.
نسخه 1.0.0-alpha02
13 مارس 2019
androidx.viewpager2:viewpager2:1.0.0-alpha02
منتشر شد. لیست کامل commit های موجود در این نسخه را می توانید در اینجا بیابید.
ویژگی های جدید
- امکان غیرفعال کردن ورودی کاربر (
setUserInputEnabled
،isUserInputEnabled
)
API تغییر می کند
- نهایی کلاس ViewPager2
رفع اشکال
- رفع پایداری
FragmentStateAdapter
نسخه 1.0.0-alpha01
7 فوریه 2019
androidx.viewpager2:viewpager2 1.0.0-alpha01
منتشر شد. این اولین نسخه ViewPager2 است.
ویژگی های جدید
- در مقایسه با نسخه قبلی خود
android.support.v4.view.ViewPager
(VP1):- پشتیبانی از طرح بندی راست به چپ (RTL).
- پشتیبانی از جهت گیری عمودی
-
notifyDataSetChanged
کاملاً کاربردی (اشکالات VP1 رفع شده است)
API تغییر می کند
-
FragmentStateAdapter
جایگزینFragmentStatePagerAdapter
می شود -
RecyclerView.Adapter
جایگزینPagerAdapter
می شود -
registerOnPageChangeCallback
جایگزینaddPageChangeListener
می شود
مسائل شناخته شده
- clipToPadding
- بدون کشیدن جعلی
- JavaDoc
- پیمایش تو در تو موازی با جهت
- بدون کنترل محدودیت خارج از صفحه
- نیاز به ادغام TabLayout بهتر دارد
- تنظیمکننده پهنای صفحه (اجباری 100%/100%)
- ترانسفورماتور صفحه: بدون انتخاب لایه سخت افزاری/نرم افزاری. بدون ترتیب ترسیم معکوس
- هنگام درج یک صفحه قبل از فعلی، مورد فعلی را قابل مشاهده نگه دارید
- ناوبری صفحه کلید نیاز به کار دارد
- پایداری
FragmentStateAdapter
/ بهبود عملکرد در راه است
ViewPager2
آخرین به روز رسانی | انتشار پایدار | کاندید را آزاد کنید | نسخه بتا | انتشار آلفا |
---|---|---|---|---|
14 مه 2024 | 1.1.0 | - | - | - |
وابستگی های AndroidX
برای استفاده از ViewPager2
، وابستگی AndroidX زیر را به فایل build.gradle
پروژه خود اضافه کنید:
شیار
dependencies { implementation "androidx.viewpager2:viewpager2:1.1.0" }
کاتلین
dependencies { implementation("androidx.viewpager2:viewpager2:1.1.0") }
بازخورد
بازخورد شما به بهتر شدن Jetpack کمک می کند. اگر مسائل جدیدی کشف کردید یا ایده هایی برای بهبود این کتابخانه دارید، به ما اطلاع دهید. لطفاً قبل از ایجاد کتابخانه جدید، به مسائل موجود در این کتابخانه نگاهی بیندازید. با کلیک کردن روی دکمه ستاره می توانید رای خود را به یک موضوع موجود اضافه کنید.
برای اطلاعات بیشتر به مستندات ردیاب مشکل مراجعه کنید.
نسخه 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
برای گوش دادن به تغییرات چرخه عمر قطعه که درFragmentStateAdapter
اتفاق میافتد اضافه شد. - مشکل
FragmentStateAdapter
با نمایان شدن منوی قطعه اولیه هنگام افزودن یک قطعه بهFragmentManager
برطرف شد. - ارسال ثابت ورودیهای پنجره: اکنون همه صفحات همان ورودیها را دریافت میکنند. با توجه به نحوه ارسال
WindowInsets
در نسخههای API قدیمی (< API 30) که میتواند از در دسترس بودن insetها برای نماهای خواهر و برادر جلوگیری کند، اگر میخواهید در دستگاههای < API 30 Insetها اعمال شود، باید از طریقWindowInsetsApplier.install(viewPager2)
این اصلاح را انتخاب کنید. .
نسخه 1.1.0-rc01
1 مه 2024
androidx.viewpager2:viewpager2:1.1.0-rc01
بدون هیچ تغییر قابل توجهی از نسخه 1.1.0-beta02 منتشر شد. نسخه 1.1.0-rc01 حاوی این commit ها است.
نسخه 1.1.0-beta02
24 مه 2023
androidx.viewpager2:viewpager2:1.1.0-beta02
منتشر شد. نسخه 1.1.0-beta02 حاوی این تعهدات است.
تغییرات API
- به
FragmentTransactionCallback
اضافه شده است. ( I45b90 ) -
ViewPager2
اکنون دیگر تلاش نمیکند تا ارسال خرابWindowInsets
نسخههای API قدیمی (< 30) را برطرف کند، زیرا خود این اصلاح میتواند برای خواهر و برادرViewPager2
مضر باشد. این اصلاح هنوز در دسترس است، اما به یک گزینه انتخابی تبدیل شده است، بنابراین توسعه دهندگان می توانند بر اساس مورد به مورد تصمیم بگیرند. رفع مشکل را با فراخوانیWindowInsetsApplier.install(viewPager2))
فعال کنید. ( IC9a85 )
رفع اشکال
- مشکلات سازگاری را با نسخه های جدیدتر
RecyclerView
برطرف کنید. کاربران این نسخه ازViewPager2
باید حداقل بهRecyclerView
1.3.1-rc01 به روز رسانی کنند.
نسخه 1.1.0-beta01
4 آگوست 2021
androidx.viewpager2:viewpager2:1.1.0-beta01
منتشر شد. نسخه 1.1.0-beta01 حاوی این تعهدات است.
تغییرات API
Androidx را برای استفاده از Kotlin 1.4 ارتقا دهید ( Id6471 , b/165307851 , b/165300826 )
حرکت به جاوا 8 برای همه کتابخانه های اندرویدیکس ( 2923f39 )
رفع اشکال
- ارسال ثابت ورودیهای پنجره، اکنون همه صفحات همان ورودیها را دریافت میکنند. ( I47fef )
نسخه 1.1.0-alpha01
1 آوریل 2020
androidx.viewpager2:viewpager2:1.1.0-alpha01
منتشر شد. نسخه 1.1.0-alpha01 حاوی این commit ها است.
این نسخه همراه با تغییر RecyclerView 1.2.0-alpha02 با پر کردن CollectionInfo
و CollectionItemInfo
است که RecyclerView
دیگر به طور پیشفرض ارائه نمیکند. هنگام بهروزرسانی به RecyclerView 1.2.0-alpha02
ViewPager2
نیز بهروزرسانی کنید تا از رگرسیون دسترسی جلوگیری کنید.
ویژگی های جدید
- رابط
FragmentTransactionCallback
برای گوش دادن به تغییرات چرخه عمر قطعه که درFragmentStateAdapter
اتفاق میافتد اضافه شد. ( ابدا77 )
رفع اشکال
- مشکل
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 قبلی:
- پشتیبانی از طرح RTL (راست به چپ).
- پشتیبانی از جهت گیری عمودی
- پشتیبانی
Fragment
قابل اعتماد (از جمله تغییرات در دستکاری در مجموعهFragment
زیرین) - انیمیشن های تغییر مجموعه داده (از جمله پشتیبانی
DiffUtil
)
- انتقال آسان از اجرای
ViewPager
قبلی (تعادل API در صورت امکان). راهنمای مهاجرت و نمونه برنامه را ببینید.
راهنمای استفاده از ViewPager2 برای اسلاید بین قطعات را ببینید.
نسخه 1.0.0-rc01
23 اکتبر 2019
androidx.viewpager2:viewpager2:1.0.0-rc01
بدون تغییر از 1.0.0-beta05
منتشر شده است. نسخه 1.0.0-rc01 حاوی این commit ها است .
نسخه 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 ) - یک مشکل در SwipeRefreshLayout برای کار بهتر با ViewPager2 برطرف شد.
نسخه 1.0.0-beta04
5 سپتامبر 2019
androidx.viewpager2:viewpager2:1.0.0-beta04
منتشر شد. commit های موجود در این نسخه را می توانید در اینجا بیابید.
رفع اشکال
- مشکل حاشیهای
FragmentStateAdapter
با پشتهFragment
را برطرف کنید. ( b/139095195 ) -
EditText
را با پیکربندیهای مشخصه مشخص کنید که باعث پرش اسکرول/صفحه در تایپ/فوکوس میشود. ( b/138044582 , b/139432498 ) - رفع مشکل در موارد
ItemDecoration
و راهحلی برای موقعیتیابی نشانگر overscroll. ( b/139012032 ) - تعدادی از مشکلات در سایر مؤلفهها رفع شد تا با
ViewPager2
بهتر کار کند: RecyclerView ، NestedScrollView ، و Navigation .
نسخه 1.0.0-beta03
7 آگوست 2019
androidx.viewpager2:viewpager2:1.0.0-beta03
منتشر شد. commit های موجود در این نسخه را می توانید در اینجا بیابید.
رفع اشکال
- مشکل
FragmentStateAdapter
با وضعیتFragment
گذرا را برطرف کنید. ب/134246546 - هنگامی که یک مجموعه داده در حین پیمایش صاف تغییر میکند، مشکلات
currentItem
وscrollState
را برطرف کنید. ب/137642608 - انیمیشنهای
PageTransformer
(از جملهMarginPageTransformer
) که با انیمیشنهای تغییر مجموعه دادهها در تضاد هستند را برطرف کنید. ب/134658996 - رفع انیمیشن های اسکرول صاف در مجموعه داده های بزرگ (محدودیت مقدار عدد صحیح
float
). ب/134858960
نسخه 1.0.0-beta02
19 جولای 2019
androidx.viewpager2:viewpager2:1.0.0-beta02
منتشر شد. commit های موجود در این نسخه را می توانید در اینجا بیابید.
رفع اشکال
- وابستگی ناخواسته jacoco که در
1.0.0-beta01
معرفی شده بود حذف شد. ( b/137782951 )
نسخه 1.0.0-beta01
17 جولای 2019
androidx.viewpager2:viewpager2:1.0.0-beta01
منتشر شد. commit های موجود در این نسخه را می توانید در اینجا بیابید.
رفع اشکال
- رفع خرابی
ViewPager2.updateCurrentItem
هنگام پیمایش و بهروزرسانی مجموعه داده - رفع خرابی
NullPointerException
مربوط بهViewPager2.isLayoutRtl
-
TOUCH_SLOP_PAGING
اکنون یک شیب لمسی پیشفرض است - رویدادهای
OnPageChangeCallback
برای آداپتورهای خالی ثابت شد (صفحه0
به جای-1
برای برابری باViewPager1
)
مسائل شناخته شده
- ما هنوز در حال کار روی مسائل باز باقی مانده قبل از انتقال به Stable هستیم
نسخه 1.0.0-alpha06
2 جولای 2019
androidx.viewpager2:viewpager2:1.0.0-alpha06
منتشر شد. commit های موجود در این نسخه را می توانید در اینجا بیابید.
این آخرین آلفای برنامه ریزی شده ما قبل از مسدود کردن API و انتقال به نسخه بتا است - لطفاً بازخورد API را به ما ارائه دهید.
ویژگی های جدید
- مبانی دسترسی بهبودیافته:
ACTION_PAGE_RIGHT
،ACTION_PAGE_DOWN
، و غیره.
API تغییر می کند
-
FragmentStateAdapter
:Fragment
غیراصلی باSTARTED
محدود میشوند وmenuVisibility
روی false تنظیم میشود. -
PageTransformer
،MarginPageTransformer
،CompositePageTransformer
: مستندات برایposition
ثابت است.
رفع اشکال
-
currentItem
پس از تغییر مجموعه داده / تغییر آداپتور ثابت شد. -
MarginPageTransformer
با مشکلoffscreenPageLimit
رفع شد. - اقدامات دسترسپذیری در حالی که در
FakeDrag
رفتار میکنید ثابت شد.
نسخه 1.0.0-alpha05
5 ژوئن 2019
androidx.viewpager2:viewpager2:1.0.0-alpha05
منتشر شد. commit های موجود در این نسخه را می توانید در اینجا بیابید.
ویژگی های جدید
-
ItemDecorator
با رفتاری مطابق باRecyclerView
معرفی شد. -
MarginPageTransformer
برای ارائه توانایی ایجاد فضای بین صفحات (خارج از درج صفحه) معرفی شد. -
CompositePageTransformer
برای ارائه توانایی ترکیب چندینPageTransformer
معرفی شد.
API تغییر می کند
- روش
FragmentStateAdapter#getItem
بهFragmentStateAdapter#createFragment
تغییر نام داد - نام روش قبلی ثابت کرده است که در گذشته منبع اشکال بوده است. - مقدار
OFFSCREEN_PAGE_LIMIT_DEFAULT
از0
به-1
تغییر کرد. در صورت استفاده از ثابتOFFSCREEN_PAGE_LIMIT_DEFAULT
، نیازی به تغییر کد مشتری نیست.
رفع اشکال
- وقتی
SCROLL_STATE_SETTLING
توسط یک کشیدن در جهت مخالف قطع شود، رفتارgetCurrentItem()
تصحیح شد. - مشکلات بارکننده کلاس
FragmentStateAdapter
که در زمینه «فعالیتها را حفظ نکنید». - اسناد
setOffscreenPageLimit
بهبود یافته است.
نسخه 1.0.0-alpha04
7 مه 2019
androidx.viewpager2:viewpager2:1.0.0-alpha04
منتشر شد. commit های موجود در این نسخه را می توانید در اینجا بیابید.
ویژگی های جدید
-
offscreenPageLimit
: امکان کنترل دقیق تعدادView
صفحه/Fragment
در سلسله مراتب مشاهده را فراهم می کند.
API تغییر می کند
-
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
منتشر شد. commit های موجود در این نسخه را می توانید در اینجا بیابید.
ویژگی های جدید
- امکان اسکرول برنامهنویسی ViewPager2:
fakeDragBy(offsetPx)
.
API تغییر می کند
- اکنون
FragmentStateAdapter
به یک شیءLifecycle
نیاز دارد. دو سازنده ابزار برای به دست آوردن آن از HostFragmentActivity
یا HostFragment
اضافه شدند.
رفع اشکال
- تعداد زیادی رفع پشتیبانی
Fragment
:- مدیریت بهروزرسانیهای مجموعه داده در حین به حداقل رساندن، یا در حین چرخش صفحه.
- حذف قطعات نامربوط پس از چرخش.
- حذف وضعیت ذخیره شده موارد حذف شده
-
PageChangeCallback
: محاسبه افست صفحه ثابت برای صفحات دارای حاشیه.
نسخه 1.0.0-alpha02
13 مارس 2019
androidx.viewpager2:viewpager2:1.0.0-alpha02
منتشر شد. لیست کامل commit های موجود در این نسخه را می توانید در اینجا بیابید.
ویژگی های جدید
- امکان غیرفعال کردن ورودی کاربر (
setUserInputEnabled
،isUserInputEnabled
)
API تغییر می کند
- نهایی کلاس ViewPager2
رفع اشکال
- رفع پایداری
FragmentStateAdapter
نسخه 1.0.0-alpha01
7 فوریه 2019
androidx.viewpager2:viewpager2 1.0.0-alpha01
منتشر شد. این اولین نسخه ViewPager2 است.
ویژگی های جدید
- در مقایسه با نسخه قبلی خود
android.support.v4.view.ViewPager
(VP1):- پشتیبانی از طرح بندی راست به چپ (RTL).
- پشتیبانی از جهت گیری عمودی
-
notifyDataSetChanged
کاملاً کاربردی (اشکالات VP1 رفع شده است)
API تغییر می کند
-
FragmentStateAdapter
جایگزینFragmentStatePagerAdapter
می شود -
RecyclerView.Adapter
جایگزینPagerAdapter
می شود -
registerOnPageChangeCallback
جایگزینaddPageChangeListener
می شود
مسائل شناخته شده
- clipToPadding
- بدون کشیدن جعلی
- JavaDoc
- پیمایش تو در تو موازی با جهت
- بدون کنترل محدودیت خارج از صفحه
- نیاز به ادغام TabLayout بهتر دارد
- تنظیمکننده پهنای صفحه (اجباری 100%/100%)
- ترانسفورماتور صفحه: بدون انتخاب لایه سخت افزاری/نرم افزاری. بدون ترتیب ترسیم معکوس
- هنگام درج یک صفحه قبل از فعلی، مورد فعلی را قابل مشاهده نگه دارید
- ناوبری صفحه کلید نیاز به کار دارد
- پایداری
FragmentStateAdapter
/ بهبود عملکرد در راه است