ViewPager2

نمایش نماها یا قطعات در قالب قابل کشیدن.
آخرین به روز رسانی انتشار پایدار کاندید را آزاد کنید نسخه بتا انتشار آلفا
14 مه 2024 1.1.0 - - -

وابستگی های AndroidX

برای استفاده از ViewPager2 ، وابستگی AndroidX زیر را به فایل build.gradle پروژه خود اضافه کنید:

Groovy

dependencies {
    implementation "androidx.viewpager2:viewpager2:1.1.0"
}

Kotlin

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 را به درستی پر می کند که RecyclerView 1.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 )

مسائل شناخته شده

نسخه 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 نیاز دارد. دو سازنده ابزار برای به دست آوردن آن از Host FragmentActivity یا Host Fragment اضافه شدند.

رفع اشکال

  • تعداد زیادی رفع پشتیبانی 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 پروژه خود اضافه کنید:

Groovy

dependencies {
    implementation "androidx.viewpager2:viewpager2:1.1.0"
}

Kotlin

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 را به درستی پر می کند که RecyclerView 1.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 )

مسائل شناخته شده

نسخه 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 نیاز دارد. دو سازنده ابزار برای به دست آوردن آن از Host FragmentActivity یا Host Fragment اضافه شدند.

رفع اشکال

  • تعداد زیادی رفع پشتیبانی 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 / بهبود عملکرد در راه است