ریسایکلرویو

نمایش مجموعه‌های بزرگی از داده‌ها در رابط کاربری شما، ضمن به حداقل رساندن استفاده از حافظه.

این جدول تمام مصنوعات موجود در گروه androidx.recyclerview را فهرست می‌کند.

مصنوع انتشار پایدار کاندیدای انتشار انتشار بتا انتشار آلفا
بازیافت‌کننده ۱.۴.۰ - - -
انتخاب recyclerview ۱.۲.۰ - - ۱.۳.۰-آلفا۰۱
این کتابخانه آخرین بار در تاریخ ۱۷ دسامبر ۲۰۲۵ به‌روزرسانی شده است.

اعلام وابستگی‌ها

برای افزودن یک وابستگی به RecyclerView، باید مخزن Google Maven را به پروژه خود اضافه کنید. برای اطلاعات بیشتر، مخزن Maven گوگل را مطالعه کنید.

وابستگی‌های مربوط به مصنوعات مورد نیاز خود را در فایل build.gradle برای برنامه یا ماژول خود اضافه کنید:

شیار

dependencies {
    implementation "androidx.recyclerview:recyclerview:1.4.0"
    // For control over item selection of both touch and mouse driven selection
    implementation "androidx.recyclerview:recyclerview-selection:1.2.0"
}

کاتلین

dependencies {
    implementation("androidx.recyclerview:recyclerview:1.4.0")
    // For control over item selection of both touch and mouse driven selection
    implementation("androidx.recyclerview:recyclerview-selection:1.2.0")
}

برای اطلاعات بیشتر در مورد وابستگی‌ها، به «افزودن وابستگی‌های ساخت» مراجعه کنید.

بازخورد

بازخورد شما به بهبود Jetpack کمک می‌کند. اگر مشکلات جدیدی کشف کردید یا ایده‌هایی برای بهبود این کتابخانه دارید، به ما اطلاع دهید. لطفاً قبل از ایجاد یک کتابخانه جدید، نگاهی به مشکلات موجود در این کتابخانه بیندازید. می‌توانید با کلیک بر روی دکمه ستاره، رأی خود را به یک مشکل موجود اضافه کنید.

ایجاد یک مسئله جدید

برای اطلاعات بیشتر به مستندات ردیاب مشکل مراجعه کنید.

نسخه ۱.۴

نسخه ۱.۴.۰

۱۵ ژانویه ۲۰۲۵

androidx.recyclerview:recyclerview:1.4.0 منتشر شد. نسخه 1.4.0 شامل این کامیت‌ها است.

تغییرات مهم از زمان RecyclerView 1.3.2

  • پشتیبانی از نرخ نوسازی Adaptive : RecyclerView اکنون هنگام پیمایش از طریق OverScroller (مانند تنظیم از یک پیمایش سریع یا روان) تابع setFrameContentVelocity را فراخوانی می‌کند. ( I8f8a4 )

نسخه ۱.۴.۰-rc01

۱۸ سپتامبر ۲۰۲۴

androidx.recyclerview:recyclerview:1.4.0-rc01 منتشر شد، بدون هیچ تغییری از زمان 1.4.0-alpha02 /. نسخه 1.4.0-rc01 شامل این کامیت‌ها است.

تغییرات از زمان ۱.۳.۲

نکته سازگاری : این نسخه فقط با SDK API 35 (بستنی وانیلی) یا بالاتر کامپایل می‌شود. اگر هنگام ارتقا هشدارهای AGP (پلاگین گریدل اندروید) را مشاهده کردید، می‌توانید آنها را غیرفعال کنید.

ویژگی‌های جدید

  • پشتیبانی از نرخ نوسازی Adaptive : RecyclerView اکنون هنگام پیمایش از طریق OverScroller (مانند تنظیم از یک پیمایش سریع یا روان) تابع setFrameContentVelocity را فراخوانی می‌کند. ( I8f8a4 )

تغییرات API

  • API RecyclerView$LayoutManager#isLayoutReversed را اضافه کنید. ( I4970e )

تغییرات دیگر

  • حذف دستورالعمل دسترسی به APIهای پلتفرم جدید، زیرا این امر به طور خودکار از طریق مدل‌سازی API هنگام استفاده از R8 با AGP 7.3 یا بالاتر (مثلاً R8 نسخه 3.3) و برای همه نسخه‌ها هنگام استفاده از AGP 8.1 یا بالاتر (مثلاً D8 نسخه 8.1) اتفاق می‌افتد. به مشتریانی که از AGP استفاده نمی‌کنند، توصیه می‌شود به D8 نسخه 8.1 یا بالاتر به‌روزرسانی کنند. برای جزئیات بیشتر به این مقاله مراجعه کنید. ( Ia60e0 ، b/345472586 )
  • نوع نمایش آیتم را به بخش‌های ردیابی اتصال/ایجاد RecyclerView اضافه کنید، و پیش‌واکشی‌های RV را در صورتی که انتظار می‌رود توسط فریم بعدی استفاده شوند، به عنوان «اجباری - فریم بعدی مورد نیاز» برچسب‌گذاری کنید، و بنابراین باید در اسرع وقت شروع به کار کنند. ( I8ec3e ، b/309523615 )
  • compileSdk به 35 به‌روزرسانی کنید (برای جزئیات بیشتر به «یادداشت سازگاری» در بالا مراجعه کنید). 5dc41be

نسخه ۱.۴.۰-بتا۰۱

۲۱ آگوست ۲۰۲۴

androidx.recyclerview:recyclerview:1.4.0-beta01 منتشر شد، بدون هیچ تغییری از زمان 1.4.0-alpha02 . نسخه 1.4.0-beta01 شامل این کامیت‌ها است.

نکته سازگاری : این نسخه فقط با SDK API 35 (بستنی وانیلی) یا بالاتر کامپایل می‌شود. اگر هنگام ارتقا هشدارهای AGP (پلاگین گریدل اندروید) را مشاهده کردید، می‌توانید آنها را غیرفعال کنید.

نسخه ۱.۴.۰-آلفا۰۲

۷ آگوست ۲۰۲۴

androidx.recyclerview:recyclerview:1.4.0-alpha02 منتشر شد. نسخه 1.4.0-alpha02 شامل این کامیت‌ها است.

نکته سازگاری : این نسخه فقط با SDK API 35 (بستنی وانیلی) یا بالاتر کامپایل می‌شود. اگر هنگام ارتقا هشدارهای AGP (پلاگین گریدل اندروید) را مشاهده کردید، می‌توانید آنها را غیرفعال کنید.

ویژگی‌های جدید

  • پشتیبانی از نرخ نوسازی متغیر: RecyclerView اکنون هنگام پیمایش از طریق OverScroller (مانند تنظیم از یک پیمایش پرتابی یا نرم) تابع setFrameContentVelocity را فراخوانی می‌کند. ( I8f8a4 )

تغییرات API

  • رابط‌های برنامه‌نویسی ViewCompat.LAYOUT_DIRECTION_ منسوخ‌شده ( I51710 ، b/317055535 )
  • API RecyclerView$LayoutManager#isLayoutReversed را اضافه کنید. ( I4970e )

تغییرات دیگر

  • حذف دستورالعمل دسترسی به APIهای پلتفرم جدید، زیرا این امر به طور خودکار از طریق مدل‌سازی API هنگام استفاده از R8 با AGP 7.3 یا بالاتر (مثلاً R8 نسخه 3.3) و برای همه نسخه‌ها هنگام استفاده از AGP 8.1 یا بالاتر (مثلاً D8 نسخه 8.1) اتفاق می‌افتد. به مشتریانی که از AGP استفاده نمی‌کنند، توصیه می‌شود به D8 نسخه 8.1 یا بالاتر به‌روزرسانی کنند. برای جزئیات بیشتر به این مقاله مراجعه کنید. ( Ia60e0 ، b/345472586 )
  • نوع نمایش آیتم را به بخش‌های ردیابی اتصال/ایجاد RecyclerView اضافه کنید، و پیش‌واکشی‌های RV را در صورتی که انتظار می‌رود توسط فریم بعدی استفاده شوند، به عنوان «اجباری - فریم بعدی مورد نیاز» برچسب‌گذاری کنید، و بنابراین باید در اسرع وقت شروع به کار کنند. ( I8ec3e ، b/309523615 )
  • compileSdk به 35 به‌روزرسانی کنید (برای جزئیات بیشتر به «یادداشت سازگاری» در بالا مراجعه کنید). 5dc41be

مشارکت خارجی

  • GestureDetectorCompat اکنون منسوخ شده است زیرا GestureDetector از minSdk در دسترس است. ( Icc4cd )

نسخه ۱.۴.۰-آلفا۰۱

۱۸ اکتبر ۲۰۲۳

androidx.recyclerview:recyclerview:1.4.0-alpha01 منتشر شد. نسخه 1.4.0-alpha01 شامل این کامیت‌ها است.

تغییرات API

  • API RecyclerView$LayoutManager#isLayoutReversed را اضافه کنید. ( I4970e )

رفع اشکالات

  • رفع اشکالی که باعث کرش‌های گاه‌به‌گاه در طول انیمیشن‌ها می‌شد ( I42f22b ) (همچنین در نسخه ۱.۳.۲ گنجانده شده است)

نسخه ۱.۳.۲

نسخه ۱.۳.۲

۱۸ اکتبر ۲۰۲۳

androidx.recyclerview:recyclerview:1.3.2 منتشر شد. نسخه ۱.۳.۲ شامل این کامیت‌ها است.

رفع اشکالات

  • رفع اشکالی که باعث کرش‌های گاه‌به‌گاه در طول انیمیشن‌ها می‌شد. ( I42f22b )

نسخه ۱.۳.۱

نسخه ۱.۳.۱

۲۶ ژوئیه ۲۰۲۳

androidx.recyclerview:recyclerview:1.3.1 منتشر شد، بدون هیچ تغییری از زمان 1.3.1-rc01. نسخه 1.3.1 شامل این کامیت‌ها است.

برای یادداشت‌های انتشار نسخه‌های قبلی، به صفحه یادداشت‌های انتشار ما مراجعه کنید

نسخه ۱.۳.۱-rc01

۲۴ مه ۲۰۲۳

androidx.recyclerview:recyclerview:1.3.1-rc01 منتشر شد. نسخه 1.3.1-rc01 شامل این کامیت‌ها است.

کاربران ViewPager2 هنگام به‌روزرسانی به این نسخه از RecyclerView باید حداقل به نسخه 1.1.0-beta02 به‌روزرسانی کنند تا از خرابی‌ها جلوگیری شود.

تغییرات API

  • متدهای جدید setDebugAssertionsEnabled و setVerboseLoggingEnabled را اضافه کنید که می‌توانند به اشکال‌زدایی مشکلات مربوط به RecyclerView در برنامه‌ها کمک کنند. ( I514b9 )

رفع اشکالات

  • با اتصال مجدد موقت نماهای موقتاً جدا شده هنگام فراخوانی onBind مشکل از کار افتادن برای کاربران ViewTreeLifecycleOwner (از جمله ComposeView ) را برطرف کنید. ( I7244f2c ، b/265347515 ، b/283288295 )

نسخه ۱.۳.۰

نسخه ۱.۳.۰

۸ مارس ۲۰۲۳

androidx.recyclerview:recyclerview:1.3.0 منتشر شد، بدون هیچ تغییری از زمان 1.3.0-rc01. نسخه 1.3.0 شامل این کامیت‌ها است.

تغییرات مهم از زمان ۱.۲.۰

  • این نسخه شامل بهبودهایی در عملکرد (که قبلاً در نسخه‌های ۱.۳.۰-alpha02 و ۱.۳.۰-beta01 وجود داشت) هنگام استفاده با Jetpack Compose است. اگر از Compose 1.2.0-beta02 یا بالاتر استفاده می‌کنید و از MyComposeAdapter و DisposeOnViewTreeLifecycleDestroyed ViewCompositionStrategy که در دستورالعمل‌های قبلی قابلیت همکاری توضیح داده شده بودند، استفاده می‌کردید، باید این موارد را حذف کنید ، زیرا دیگر بهبودی نسبت به حالت پیش‌فرض محسوب نمی‌شوند.
  • متد جدید ConcatAdapter.getWrappedAdapterAndPosition اضافه شده است تا امکان بازیابی اطلاعات آداپتور پیچیده شده را در موقعیت‌هایی که ViewHolder ندارید، مانند SpanSizeLookup ( I2bd4c ، b/191543920 ) فراهم کند.

نسخه ۱.۳.۰-rc01

۲۱ سپتامبر ۲۰۲۲

androidx.recyclerview:recyclerview:1.3.0-rc01 منتشر شد. نسخه 1.3.0-rc01 شامل این کامیت‌ها است.

  • بدون تغییر از آخرین انتشار

نسخه ۱.۳.۰-بتا۰۲

۱۰ آگوست ۲۰۲۲

androidx.recyclerview:recyclerview:1.3.0-beta02 منتشر شد. نسخه 1.3.0-beta02 شامل این کامیت‌ها است.

تغییرات API

  • حاشیه‌نویسی‌های nullability که در نسخه ۱.۳.۰-بتا۰۱ اضافه شده بودند، به دلیل این واقعیت که نشان‌دهنده یک تغییر ناسازگار با منبع قابل توجه برای کاربران کاتلین بودند ( I7a258 ، I1557e6 ، I8db76 ) حذف شدند.

نسخه ۱.۳.۰-بتا۰۱

۲۹ ژوئن ۲۰۲۲

androidx.recyclerview:recyclerview:1.3.0-beta01 منتشر شد. نسخه 1.3.0-beta01 شامل این کامیت‌ها است.

ویژگی‌های جدید

  • این نسخه بتا شامل بهبودهایی در عملکرد است (که قبلاً در نسخه ۱.۳.۰-alpha02 هنگام استفاده با Jetpack Compose وجود داشت). اگر از Compose نسخه 1.2.0-beta02 یا بالاتر استفاده می‌کنید و از MyComposeAdapter و DisposeOnViewTreeLifecycleDestroyed ViewCompositionStrategy که در دستورالعمل‌های قبلی قابلیت همکاری توضیح داده شده بودند، استفاده می‌کردید، باید این موارد را حذف کنید ، زیرا دیگر بهبودی نسبت به حالت پیش‌فرض محسوب نمی‌شوند.

تغییرات API

  • حاشیه‌نویسی‌های nullability برای تعدادی از متدها و پارامترها اضافه شد تا هشدارهای lint برای کاربران جاوا و قابلیت همکاری برای کاربران کاتلین بهبود یابد. این ممکن است برای برخی از کاربران کاتلین یک تغییر مخرب در کد منبع باشد و منجر به هشدارها/خطاهای lint اضافی برای برخی از کاربران جاوا شود. ( I61829 , b/236487044 ; Ia0b6f ; I6f119 , b/236487209 ; Ibe1de , b/236487210 )

رفع اشکالات

  • با تنظیم نام کلاس اطلاعات گره a11y ( I12812 ) اطمینان حاصل کنید که سرویس‌های a11y با شبکه‌ها به عنوان شبکه رفتار می‌کنند.

نسخه ۱.۳.۰-آلفا۰۲

۶ آوریل ۲۰۲۲

androidx.recyclerview:recyclerview:1.3.0-alpha02 منتشر شد. نسخه 1.3.0-alpha02 شامل این کامیت‌ها است.

تغییرات API

  • متدهای آزمایشی BuildCompat برای SDK های آینده اضافه می‌کند ( Iafd82 ، b/207528937 )
  • متد جدید ConcatAdapter.getWrappedAdapterAndPosition اضافه شده است تا امکان بازیابی اطلاعات آداپتور پیچیده شده را در موقعیت‌هایی که ViewHolder ندارید، مانند SpanSizeLookup ( I2bd4c ، b/191543920 ) فراهم کند.

رفع اشکالات

  • ادغام با کتابخانه جدید AndroidX PoolingContainer ( Ib89d2 )
  • فاصله پیمایش را برای اقدام دسترسی تنظیم می‌کند ( If74ae )

نسخه ۱.۳.۰-آلفا۰۱

۱۵ سپتامبر ۲۰۲۱

androidx.recyclerview:recyclerview:1.3.0-alpha01 منتشر شد. نسخه 1.3.0-alpha01 شامل این کامیت‌ها است.

ویژگی‌های جدید

  • پشتیبانی از اسکرول کششی و پیمایش بیش از حد RecyclerView اضافه شد. ( Iab877 )

RecyclerView-Selection نسخه ۱.۳.۰

نسخه ۱.۳.۰-آلفا۰۱

۱۷ دسامبر ۲۰۲۵

androidx.recyclerview:recyclerview-selection:1.3.0-alpha01 منتشر شد. نسخه 1.3.0-alpha01 شامل این کامیت‌ها است.

تغییرات API

  • اجازه دهید in-selection-hotspot انتخاب موجود را پاک کند ( I0eae7 ، b/389814214 ). این به توسعه‌دهندگان کنترل بیشتری می‌دهد تا هنگام ضربه زدن یا کلیک کردن روی RecyclerView برای انتخاب یک مورد، آیا موارد دیگری که از قبل انتخاب شده‌اند، انتخاب شده باقی بمانند یا از حالت انتخاب خارج شوند.

انتخاب RecyclerView نسخه ۱.۲.۰

نسخه ۱.۲.۰

۲۰ مه ۲۰۲۵

androidx.recyclerview:recyclerview-selection:1.2.0 منتشر شد. نسخه ۱.۲.۰ شامل این کامیت‌ها است.

تغییرات مهم از زمان ۱.۱.۰

  • رفع مشکل تبدیل کلیک‌ها به درگ‌ها با حرکات کوچک ماوس.
  • مشکلی را برطرف کنید که در آن نگاشت کلید/موقعیت در KeyProvider از بین می‌رفت در حالی که ورودی هنوز بازیافت نشده بود.

نسخه ۱.۲.۰-rc01

۷ مه ۲۰۲۵

androidx.recyclerview:recyclerview-selection:1.2.0-rc01 منتشر شد. نسخه 1.2.0-rc01 شامل این کامیت‌ها است.

رفع اشکالات

  • رفع مشکل تبدیل کلیک‌ها به درگ با حرکات کوچک ماوس ( Ie9106 )

نسخه ۱.۲.۰-بتا۰۱

۹ آوریل ۲۰۲۵

androidx.recyclerview:recyclerview-selection:1.2.0-beta01 منتشر شد. نسخه 1.2.0-beta01 شامل این کامیت‌ها است.

تغییرات API

  • رابط‌های برنامه‌نویسی ViewCompat.LAYOUT_DIRECTION_ منسوخ‌شده ( I51710 ، b/317055535 )

رفع اشکالات

  • این کتابخانه اکنون از حاشیه‌نویسی‌های nullness از نوع JSpecify استفاده می‌کند که از نوع type-use هستند. توسعه‌دهندگان کاتلین باید از آرگومان کامپایلر زیر برای اعمال استفاده صحیح استفاده کنند: -Xjspecify-annotations=strict (این پیش‌فرض است که از نسخه 2.1.0 کامپایلر کاتلین شروع می‌شود). ( I03b80 ، b/326456246 )

نسخه ۱.۲.۰-آلفا۰۱

۵ مه ۲۰۲۱

androidx.recyclerview:recyclerview-selection:1.2.0-alpha01 منتشر شد. نسخه 1.2.0-alpha01 شامل این کامیت‌ها است.

رفع اشکالات

  • مشکلی را برطرف کنید که در آن نگاشت کلید/موقعیت در KeyProvider از بین می‌رفت در حالی که ورودی هنوز بازیافت نشده بود. ( b/145767095 )

نسخه ۱.۲.۱

نسخه ۱.۲.۱

۲ ژوئن ۲۰۲۱

androidx.recyclerview:recyclerview:1.2.1 منتشر شد. نسخه ۱.۲.۱ شامل این کامیت‌ها است.

رفع اشکالات

  • ViewHolder های داخل ConcatAdapter اکنون موقعیت آداپتور صحیح را هنگام پرس و جو در فراخوانی onViewRecycled برمی‌گردانند. ( b/187339376 )

نسخه ۱.۲.۰

نسخه ۱.۲.۰

۷ آوریل ۲۰۲۱

androidx.recyclerview:recyclerview:1.2.0 منتشر شد. نسخه ۱.۲.۰ شامل این کامیت‌ها است.

تغییرات عمده از زمان ۱.۱.۰

ConcatAdapter : این آداپتور جدید به شما امکان می‌دهد تا به راحتی چندین آداپتور را در یک RecyclerView به هم متصل کنید. برای اطلاعات بیشتر به پست وبلاگ مراجعه کنید.

بازیابی وضعیت به صورت تنبل : آداپتور RecyclerView اکنون می‌تواند بازیابی وضعیت را تا زمان بارگذاری محتویات آن به تأخیر بیندازد. برای جزئیات بیشتر به مستندات مراجعه کنید.

نسخه ۱.۲.۰-rc01

۲۴ مارس ۲۰۲۱

androidx.recyclerview:recyclerview:1.2.0-rc01 منتشر شد. نسخه 1.2.0-rc01 شامل این کامیت‌ها است.

رفع اشکالات

  • ConcatAdapter.Config.Builder اکنون مقادیر پیش‌فرضی دارد که با Config.DEFAULT ( b/157169835 ) مطابقت دارند.

نسخه ۱.۲.۰-بتا۰۲

۲۴ فوریه ۲۰۲۱

androidx.recyclerview:recyclerview:1.2.0-beta02 منتشر شد. نسخه 1.2.0-beta02 شامل این کامیت‌ها است.

رفع اشکالات

  • مشکلی که باعث می‌شد حاشیه‌گذاری بالا باعث شود درخشش اسکرول سمت راست به سمت بالا و داخل ناحیه حاشیه‌گذاری شده حرکت کند، به جای اینکه به سمت پایین حرکت کند تا فاصله‌گذاری رعایت شود، برطرف شد. ( I6b61d , b/118399122 )

نسخه ۱.۲.۰-بتا۰۱

۲ دسامبر ۲۰۲۰

androidx.recyclerview:recyclerview:1.2.0-beta01 بدون هیچ تغییری نسبت به 1.2.0-alpha06 منتشر شده است. نسخه ۱.۲.۰-beta01 شامل این کامیت‌ها است.

نسخه ۱.۲.۰-alpha06

۱ اکتبر ۲۰۲۰

androidx.recyclerview:recyclerview:1.2.0-alpha06 منتشر شد. نسخه 1.2.0-alpha06 شامل این کامیت‌ها است.

ویژگی‌های جدید

  • پشتیبانی از اضافه کردن چندین RecyclerListener اضافه شد. ( I70ad8 ، b/145767095 )

تغییرات API

  • RecyclerView.setRecyclerListener(RecyclerListener) منسوخ شده است. ( I70ad8 ، b/145767095 )

نسخه ۱.۲.۰-آلفا۰۵

۲۲ ژوئیه ۲۰۲۰

androidx.recyclerview:recyclerview:1.2.0-alpha05 منتشر شد. نسخه 1.2.0-alpha05 شامل این کامیت‌ها است.

رفع اشکالات

  • مشکلی که باعث می‌شد اگر یک RecyclerView فقط یک آیتم داشته باشد و فوکوس روی آن باشد، با فوکوس به جلو یا عقب، فوکوس جابجا نشود، برطرف شد ( 6f36b3 )
  • خطای ArrayIndexOutOfBoundsException در StaggeredGridLayoutManager ( 49b601 ، b/122303625 ، b/74877618 ، b/160193663 ، b/37086625 ) برطرف شد.
  • اشکال اندازه‌گیری که در آن تحت شرایط خاص، RecyclerView به طور نامناسبی فرزندان خود را نشان نمی‌داد، برطرف شد. ( 89040c ، b/138734786 )

مشارکت‌های خارجی

  • با تشکر از کولین کروینکل از طرف فیسبوک برای این مشارکت !

نسخه ۱.۲.۰-آلفا۰۴

۲۴ ژوئن ۲۰۲۰

androidx.recyclerview:recyclerview:1.2.0-alpha04 منتشر شد. نسخه 1.2.0-alpha04 شامل این کامیت‌ها است.

تغییرات API

  • برای جلوگیری از هرگونه سردرگمی با رفتارهای مختلف ادغام داده‌ها ( c0540c ، b/158019211 )، نام MergeAdapter به ConcatAdapter تغییر یافته است.

رفع اشکالات

  • بهبودهایی در پیمایش خودکار هنگام حذف همه موارد قابل مشاهده ( fe8670 ، b/154124815 )

نسخه ۱.۲.۰-آلفا۰۳

۲۹ آوریل ۲۰۲۰

androidx.recyclerview:recyclerview:1.2.0-alpha03 منتشر شد. نسخه 1.2.0-alpha03 شامل این کامیت‌ها است.

ویژگی‌های جدید

  • RecyclerView اکنون یک متد nestedScrollBy دارد که امکان پیمایش برنامه‌ریزی‌شده را فراهم می‌کند و با پیمایش تودرتو همکاری می‌کند: ( Ibaa58 )

نسخه ۱.۲.۰-آلفا۰۲

۱ آوریل ۲۰۲۰

androidx.recyclerview:recyclerview:1.2.0-alpha02 منتشر شد. نسخه 1.2.0-alpha02 شامل این کامیت‌ها است.

این نسخه و نسخه‌های بالاتر RecyclerView با نسخه‌های پایین‌تر ViewPager2 سازگار نیستند. اگر در حال حاضر از androidx.viewpager2:viewpager2:1.0.0 یا پایین‌تر استفاده می‌کنید، حتماً آن را به androidx.viewpager2:viewpager2:1.1.0-alpha01 به‌روزرسانی کنید.

ویژگی‌های جدید

  • آداپتور ادغام

    • MergeAdapter : یک آداپتور RecyclerView جدید که می‌تواند چندین آداپتور را به صورت خطی ترکیب کند.
    MyAdapter adapter1 = ...;
    AnotherAdapter adapter2 = ...;
    MergeAdapter merged = new MergeAdapter(adapter1, adapter2);
    recyclerView.setAdapter(mergedAdapter);
    

    برای نمونه بالا، MergeAdapter آیتم‌ها را از adapter1 و به دنبال آن adapter2 ارائه می‌دهد.

  • بازیابی حالت تنبل RecyclerView.Adapter :

    • یک API جدید به کلاس RecyclerView.Adapter اضافه شده است که به Adapter اجازه می‌دهد زمان بازیابی وضعیت طرح‌بندی را کنترل کند.

    • برای مثال، می‌توانید تماس بگیرید:

    myAdapter.setStateRestorationStrategy(StateRestorationStrategy.WHEN_NOT_EMPTY);
    

    برای اینکه RecyclerView قبل از بازیابی موقعیت اسکرول، منتظر بماند تا Adapter خالی نشود.

  • CollectionInfo و CollectionItemInfo دیگر به طور پیش‌فرض پر نخواهند شد.

    • اگر می‌خواهید سرویس‌های دسترسی (مثلاً Talkback) همچنان تعداد و اندیس آیتم را به کاربر نشان دهند، باید خودتان CollectionInfo و CollectionItemInfo را پر کنید.

    • این اشیاء دیگر در چارچوب قرار نمی‌گیرند زیرا چارچوب نمی‌تواند تعداد آیتم‌هایی را که توسط کاربر درک می‌شوند (مانند جداکننده‌ها، هدرها یا آیتم‌های RecyclerView که نشان‌دهنده چندین آیتم درک شده هستند) تعیین کند.

رفع اشکالات

  • RecyclerView اکنون از اتصال به نماهای خارج از نمای دید، زمانی که اندازه نمای دید تغییر کرده است، جلوگیری می‌کند.
  • اشکالی در DiffUtil برطرف شد که در آن ممکن بود وقتی یک آیتم اصلی در لیست اول چندین بار در لیست دوم تکرار می‌شود، تفاوت را اشتباه محاسبه کند. ( b/123376278 )

نسخه ۱.۲.۰-آلفا۰۱

۱۸ دسامبر ۲۰۱۹

androidx.recyclerview:recyclerview:1.2.0-alpha01 منتشر شد. نسخه 1.2.0-alpha01 شامل این کامیت‌ها است .

رفع اشکالات

  • مشکلات جزئی مربوط به ترسیم RTL و دقت لمس در FastScroller برطرف شد ( b/143789932 ، aosp/1130438 )
  • رفع مشکل کرش کردن ItemTouchHelper هنگام حذف از RecyclerView در حین اجرای انیمیشن‌های ItemTouchHelper ( b/140447176 ، aosp/1167575 )

نسخه ۱.۱.۰

نسخه ۱.۱.۰

۲۰ نوامبر ۲۰۱۹

androidx.recyclerview:recyclerview:1.1.0 منتشر شد. نسخه ۱.۱.۰ شامل این کامیت‌ها است .

تغییرات مهم از زمان ۱.۰.۰

  • PagerSnapHelper و LinearSnapHelper اکنون صرف نظر از مقدار clipToPadding ( b/139452422 ، b/139012032 ، aosp/1103182 ، aosp/1106715 ، aosp/1130728 ) فاصله‌گذاری RecyclerView را در نظر می‌گیرند.
  • RecyclerView.setLayoutTransition(LayoutTransition) رسماً منسوخ شده است و هنگام فراخوانی با مقدار غیر تهی، خطای IllegalArgumentException را صادر می‌کند. به جای آن RecyclerView.setItemAnimator(ItemAnimator) استفاده کنید. ( aosp/839414 )
  • aosp/723649 : RecyclerView اکنون NestedScrollingChild3 پیاده‌سازی می‌کند و به آن این امکان را می‌دهد که از زمانی که تمام والدین پیمایش تو در تو، مصرف فواصل پیمایش تو در تو را متوقف کرده‌اند، مطلع شود. اگر کد توسعه‌دهنده در حال حاضر RecyclerView.onNestedScroll(View, int, int, int, int, int) را لغو می‌کند، احتمالاً دیگر فراخوانی نخواهد شد و به جای آن RecyclerView.onNestedScroll(View, int, int, int, int, int, int[]) باید لغو شود.
  • RecyclerView اکنون یک ویژگی سبک پیش‌فرض دارد: recyclerViewStyle ، که امکان تنظیم سبک پیش‌فرض را در قالب شما فراهم می‌کند.
  • رابط برنامه‌نویسی کاربردی اقدامات دسترسی ViewCompat دیگر RecyclerView ItemDelegate را از کار نمی‌اندازد.
  • LinearLayoutManager.calculateExtraLayoutSpace(RecyclerView.State, int[]) می‌تواند برای سفارشی‌سازی میزان فضای طرح‌بندی اضافی که باید به هر دو طرف RecyclerView مرتبط اضافه شود، بازنویسی شود. ( aosp/931259 )
  • یک overload جدید از smoothScrollBy اضافه شد: RecyclerView#smoothScrollBy(@Px int, @Px int, @Nullable Interpolator, int duration) که به شما امکان می‌دهد مدت زمان انیمیشن را بر حسب میلی‌ثانیه مشخص کنید. ( aosp/952807 )

نسخه ۱.۱.۰-rc01

۲۳ اکتبر ۲۰۱۹

androidx.recyclerview:recyclerview:1.1.0-rc01 منتشر شد. نسخه 1.1.0-rc01 شامل این کامیت‌ها است .

رفع اشکالات

  • خطای «برنامه پاسخ نمی‌دهد» هنگام لغو RecyclerViewAccessibilityDelegate.ItemDelegate ( aosp/1138057 ، aosp/1133434 ) برطرف شد.

نسخه ۱.۱.۰-بتا۰۵

۹ اکتبر ۲۰۱۹

androidx.recyclerview:recyclerview:1.1.0-beta05 منتشر شد. نسخه 1.1.0-beta05 شامل این کامیت‌ها است .

تغییرات API

  • در ادامه‌ی aosp/1106715 و aosp/1103182 ، اکنون LinearSnapHelper و PagerSnapHelper نمایی را که در مرکز مرزهای RecyclerView قرار دارد، منهای padding، علیرغم مقدار clipToPadding، برمی‌گردانند. ( aosp/1130728 )

رفع اشکالات

  • مشکلی که باعث می‌شد RecyclerView گره‌های دسترسی تکراری برای فرزندان RecyclerView ایجاد کند، برطرف شد. ( aosp/1130618 )
  • مشکلی که باعث می‌شد سلسله مراتب دسترسی مجازی در RecyclerViews کار نکند، برطرف شد.
  • مشکلی که باعث می‌شد از ItemDelegates سفارشی استفاده نشود، برطرف شد.

نسخه ۱.۱.۰-بتا۰۴

۵ سپتامبر ۲۰۱۹

androidx.recyclerview:recyclerview:1.1.0-beta04 منتشر شد. کامیت‌های موجود در این نسخه را می‌توانید اینجا پیدا کنید.

رفع اشکالات

  • PagerSnapHelper و LinearSnapHelper اکنون صرف نظر از مقدار clipToPadding ( b/139452422 ، b/139012032 ، aosp/1103182 ، aosp/1106715 ) فاصله‌گذاری RecyclerView را در نظر می‌گیرند.
  • اشکالی که باعث می‌شد RecyclerView هنگام پیمایش تو در تو، اجازه‌ی رهگیری لمسی را ندهد، برطرف شد (پیش پیمایش تو در تو باعث پیمایش NestedScrollingParent می‌شد ( b/138668210 ، aosp/1105373 ). این به نفع کتابخانه‌هایی مانند ViewPager2 است.
  • RecyclerView اکنون قبل از ارسال اسکرول‌های تو در تو، به طور مداوم به SCROLL_STATE_DRAGGING می‌رود ( aosp/1105373 )
  • پیش پیمایش تو در تو دیگر قبل از اینکه حرکت از شیب لمسی ( b/139530818 ، aosp/1105373 ) تجاوز کند، انجام نمی‌شود.
  • آرگومان‌های dx و dy که به پیش‌پیمایش‌های تو در تو ارسال می‌شوند، زمانی که RecyclerView نمی‌تواند در آن جهت پیمایش کند، صفر می‌شوند ( aosp/1105373 )

نسخه ۱.۱.۰-بتا۰۳

۱۵ آگوست ۲۰۱۹

androidx.recyclerview:recyclerview:1.1.0-beta03 منتشر شد. کامیت‌های موجود در این نسخه را می‌توانید اینجا پیدا کنید.

تغییرات API

  • RecyclerView اکنون فواصل اسکرول را از طریق View.onScrollChanged(int l, int t, int oldl, int oldt) ارسال می‌کند تا سرویس‌های دسترسی به طور دقیق از تغییرات اسکرول مطلع شوند. ( aosp/1007823 )

رفع اشکالات

  • یک اشکال بزرگ سرریز پشته مربوط به RecyclerView و دسترسی‌پذیری برطرف شد. ( aosp/1099577 )

نسخه ۱.۱.۰-بتا۰۲

۷ آگوست ۲۰۱۹

androidx.recyclerview:recyclerview:1.1.0-beta02 منتشر شد. کامیت‌های موجود در این نسخه را می‌توانید اینجا پیدا کنید.

ویژگی‌های جدید

  • RecyclerView اکنون یک ویژگی سبک پیش‌فرض دارد: recyclerViewStyle ، که امکان تنظیم سبک پیش‌فرض را در قالب شما فراهم می‌کند.

رفع اشکالات

  • اشکالی که باعث می‌شد RecyclerView هنگام اسکرول کردن، اجازه لمس را ندهد و باعث اسکرول NestedScrollingParent شود، برطرف شد. ( b/131115697 , aosp/1055911 )

نسخه ۱.۱.۰-بتا۰۱

۲ ژوئیه ۲۰۱۹

androidx.recyclerview:recyclerview:1.1.0-beta01 منتشر شد. کامیت‌های موجود در این نسخه را می‌توانید اینجا پیدا کنید.

ویژگی‌های جدید

  • RecyclerView اکنون در اسکرول تو در تو، زمانی که یک اسکرول از طریق رویدادهای دسترسی آغاز می‌شود، شرکت می‌کند. ( aosp/973584 )

نسخه ۱.۱.۰-alpha06

۵ ژوئن ۲۰۱۹

androidx.recyclerview:recyclerview:1.1.0-alpha06 و androidx.recyclerview:recyclerview-selection:1.1.0-alpha06 منتشر شدند. کامیت‌های موجود در این نسخه را می‌توانید اینجا پیدا کنید.

ویژگی‌های جدید

  • یک overload جدید از smoothScrollBy اضافه شد: RecyclerView#smoothScrollBy(@Px int, @Px int, @Nullable Interpolator, int duration) که به شما امکان می‌دهد مدت زمان انیمیشن را بر حسب میلی‌ثانیه مشخص کنید. ( aosp/952807 )

تغییرات API

  • GridLayoutManager و StaggeredGridLayoutManager دیگر به طور خودکار آیتم‌های full span را به عنوان سرصفحه برای اهداف دسترسی‌پذیری برچسب‌گذاری نمی‌کنند ( aosp/969703 )
  • ترتیب انتخاب (بر اساس زمان ایجاد) را در recyclerview-selection ( aosp/937279 ) حفظ کنید.

رفع اشکالات

  • اشکالی که باعث می‌شد RecyclerView در حالت اسکرول تو در تو با سرعت‌های نادرست حرکت کند، برطرف شد. ( aosp/961642 )
  • بهبودهای پایداری به recyclerview-selection اضافه شد ( aosp/960213 ، aosp/926296 )

نسخه ۱.۱.۰-آلفا۰۵

۷ مه ۲۰۱۹

androidx.recyclerview:recyclerview:1.1.0-alpha05 و androidx.recyclerview:recyclerview-selection:1.1.0-alpha05 منتشر شدند. کامیت‌های موجود در این نسخه را می‌توانید اینجا پیدا کنید.

ویژگی‌های جدید

  • LinearLayoutManager.calculateExtraLayoutSpace(RecyclerView.State, int[]) می‌تواند برای سفارشی‌سازی میزان فضای طرح‌بندی اضافی که باید به هر دو طرف RecyclerView مرتبط اضافه شود، بازنویسی شود. ( aosp/931259 )

تغییرات API

  • اضافه کردن API برای بازیابی DividerItemDecoration drawable ( aosp/937282 )
  • منسوخ کردن LinearLayout.getExtraLayoutSpace(RecyclerVew.State) به نفع مکانیزم جدیدی که امکان داشتن فضای طرح‌بندی اضافی سفارشی در هر دو طرف را فراهم می‌کند. متد جدید LinearLayout.calculateExtraLayoutSpace(RecyclerView.state, int[]) ( aosp/931259 ) است.

رفع اشکالات

  • انتخاب ژست‌های حرکتی بهبود یافته ( aosp/940781 )
  • ترتیب انتخاب را حفظ کنید (بر اساس زمان ایجاد) ( b/128455535 )

نسخه ۱.۱.۰-آلفا۰۴

۳ آوریل ۲۰۱۹

androidx.recyclerview:recyclerview:1.1.0-alpha04 منتشر شد. کامیت‌های موجود در این نسخه را می‌توانید اینجا پیدا کنید.

رفع اشکالات

  • قبلاً RV OnItemTouchListener ها نمی‌توانستند ACTION_UP را رهگیری کنند، و مانع از این می‌شد که OnItemTouchListener ها کد دیگر را از پاسخ دادن به ACTION_UP مسدود کنند. این مشکل اکنون برطرف شده است: ( aosp/916137 )

نسخه ۱.۱.۰-آلفا۰۳

۱۳ مارس ۲۰۱۹

androidx.recyclerview:recyclerview:1.1.0-alpha03 منتشر شد. لیست کامل کامیت‌های موجود در این نسخه را می‌توانید اینجا بیابید.

ویژگی‌های جدید

  • GridLayoutManager : انتخاب، تخمین ابعاد نوار پیمایش GridLayoutManager با وضوح بالاتر ( aosp/838836 ):
    • از اطلاعات span برای تخمین ابعاد نوار پیمایش برای GridLayoutManager استفاده می‌کند.
    • برای فعال کردن، GridLayoutManager#setUsingSpansToEstimateScrollbarDimensions(boolean) را با مقدار true فراخوانی کنید.
    • برای اطلاعات بیشتر به مستندات مربوط به GridLayoutManager#setUsingSpansToEstimateScrollbarDimensions(boolean) مراجعه کنید.

رفع اشکالات

  • دسترسی‌پذیری: اشکالی وجود داشت که وقتی یک ViewHolder بازیافت و سپس دوباره راه‌اندازی می‌شد، ItemDelegate مرتبط با RecyclerViewAccessibilityDelegate مربوط به RecyclerView با itemView مربوط به ViewHolder مرتبط نمی‌شد و دسترسی‌پذیری را مختل می‌کرد. این مشکل اکنون برطرف شده است ( aosp/917740 ).

نسخه ۱.۱.۰-آلفا۰۲

۳۰ ژانویه ۲۰۱۹

androidx.recyclerview:recyclerview 1.1.0-alpha02 منتشر شد.

تغییرات API

  • RecyclerView.setLayoutFrozen(boolean) و RecyclerView.isLayoutFrozen() منسوخ شده‌اند و RecyclerView.suppressLayout(boolean) و RecyclerView.isLayoutSuppressed() جایگزین آنها شده‌اند. ( aosp/839414 )
  • RecyclerView.setLayoutTransition(LayoutTransition) رسماً منسوخ شده است و هنگام فراخوانی با مقدار غیر تهی، خطای IllegalArgumentException ( aosp/839414 ) را صادر می‌کند.

رفع اشکالات

  • رفع اشکال در RV که در آن SmoothScroller هرگز متوقف نمی‌شود ( aosp/843741 )
  • اشکالی که باعث می‌شد SCROLL_STATE_IDLE در پایان انیمیشن اسکرول کردن فراخوانی نشود، برطرف شد. ( aosp/812576 )

نسخه ۱.۱.۰-آلفا۰۱

۳ دسامبر ۲۰۱۸

androidx.recyclerview 1.1.0-alpha01 و androidx.recyclerview-selection 1.1.0-alpha01 منتشر شدند.

androidx.recyclerview 1.1.0-alpha01

تغییرات API

  • aosp/723649 : RecyclerView اکنون NestedScrollingChild3 پیاده‌سازی می‌کند و به آن این امکان را می‌دهد که از زمانی که تمام والدین پیمایش تو در تو، مصرف فواصل پیمایش تو در تو را متوقف کرده‌اند، مطلع شود. اگر کد توسعه‌دهنده در حال حاضر RecyclerView.onNestedScroll(View, int, int, int, int, int) را لغو می‌کند، احتمالاً دیگر فراخوانی نخواهد شد و به جای آن RecyclerView.onNestedScroll(View, int, int, int, int, int, int[]) باید لغو شود.

رفع اشکالات

  • مشکل از کار افتادن برنامه هنگام استفاده از TransitionManager برای جمع کردن/باز کردن آیتم در RecyclerView ( b/37129527 ) برطرف شد.
  • اشکالی که باعث می‌شد رفتار RecyclerView.OnItemTouchListener با رفتار onInterceptTouchEvent و onTouchEvent سیستم نما ( aosp/721235 ) مغایرت داشته باشد، برطرف شد.
  • رفع چند اشکال مربوط به پیمایش روان در لبه‌ها ( aosp/729718 ، aosp/747168 ، aosp/812576 )
  • استراتژی snap در PagerSnapHelper برای مقابله با نماهای فرزند غیر معمول ( aosp/795752 ) اصلاح شد.

androidx.recyclerview-selection 1.1.0-alpha01

رفع اشکالات

  • خطای ConcurrentModificationException هنگام تغییر مجموعه داده‌ها با حذف انتخاب، برطرف شد.

RecyclerView-Selection نسخه ۱.۱.۰

RecyclerView-Selection نسخه ۱.۱.۰

۲۷ ژانویه ۲۰۲۱

androidx.recyclerview:recyclerview-selection:1.1.0 منتشر شد. نسخه ۱.۱.۰ شامل این کامیت‌ها است.

تغییرات عمده از زمان ۱.۰.۰

  • بهبودهای متعدد در پایداری.
  • متدهای withGestureTooltypes و withPointerTooltypes در SelectionTracker.Builder منسوخ شده‌اند. این متدها در نسخه‌های آینده حذف خواهند شد.

RecyclerView-Selection نسخه ۱.۱.۰-rc03

۱ اکتبر ۲۰۲۰

androidx.recyclerview:recyclerview-selection:1.1.0-rc03 منتشر شد. نسخه 1.1.0-rc03 شامل این کامیت‌ها است.

رفع اشکالات

با تشکر از استفان کیسلر برای آزمایش اصلاحات و بازخورد.

  • مشکلی که باعث می‌شد OnClickListenerهای نمای فرزند هنگام انتخاب فعال به طور غیرمنتظره فراخوانی شوند، برطرف شد.
  • کنترل‌کننده ماوس (انتخاب باند) > پیمایش‌های غیرمنتظره را با ظرافت مدیریت کنید. ( b/167821507 )

RecyclerView-Selection نسخه ۱.۱.۰-rc02

۲ سپتامبر ۲۰۲۰

androidx.recyclerview:recyclerview-selection:1.1.0-rc02 منتشر شد. نسخه 1.1.0-rc02 شامل این کامیت‌ها است.

نکات برجسته

  • چندین رگرسیون از نسخه ۱.۰ در مدیریت ورودی برطرف شد.
  • کتابخانه به‌روزرسانی شد تا از onRequestDisallowInterceptTouchEvent پشتیبانی کند و به آن اجازه می‌دهد تا به خوبی با ItemTouchHelper کار کند (کافی است آن را کنار بکشید!).

رفع اشکالات

  • مشکلی که باعث می‌شد کتابخانه انتخاب، رویدادهای GestureDetector را اشتباه تفسیر کند و در نتیجه در حین انتخاب فعال، لمس‌ها از دست بروند، برطرف شد ( b/165030422 )
  • مشکلی که باعث می‌شد انتخاب برای نمایش موارد حذف شده از آداپتور به‌روزرسانی نشود، برطرف شد. ( b/138932671 )
  • مشکلی که باعث می‌شد آیتم‌های RecyclerView در حالی که SelectionTracker انتخاب فعال دارد، رویدادهای onClick را اجرا کنند، برطرف شد ( b/161162268 )
  • اکنون onRequestDisallowInterceptTouchEvent به درستی مدیریت می‌شود.
  • مشکلی که باعث می‌شد هنگام اسکرول کردن ماوس روی Q ”Cannot call this method in a scroll callback” برطرف شد.
  • اسناد به‌روزرسانی‌شده (به‌ویژه در StableIdKeyProvider ) برای بیان واضح الزامات نمونه RecyclerView

Recyclerview-Selection نسخه ۱.۱.۰-rc01

۵ فوریه ۲۰۲۰

androidx.recyclerview:recyclerview-selection:1.1.0-rc01 منتشر شد. نسخه 1.1.0-rc01 شامل این کامیت‌ها است .

رفع اشکالات

  • مشکلی که باعث می‌شد اسکرول کردن RecyclerView با انتخاب ژست حرکتی در صورت تعامل با AppBarLayout اسکرول‌پذیر ( aosp/1193934 ) دشوار باشد، برطرف شد.

RecyclerView-Selection نسخه ۱.۱.۰-بتا۰۱

۴ دسامبر ۲۰۱۹

androidx.recyclerview:recyclerview-selection:1.1.0-beta01 منتشر شد. نسخه 1.1.0-beta01 شامل این کامیت‌ها است .

بهبودهای کلی در پایداری مربوط به بررسی‌های دفاعی و مدیریت وضعیت داخلی.

رفع اشکالات

تغییرات API

  • پارامتر نوع کلید انتخاب به کلاس‌ها و متدهایی که وجود ندارند اضافه شد.
  • روش‌های منسوخ‌شده:
    • SelectionTracker.Builder#withPointerTooltype
    • SelectionTracker.Builder#withGestureTooltype
    • این روش‌ها با این هدف وجود داشتند که توسعه‌دهندگان بتوانند رفتارهای اشاره‌گر یا ژست را به ابزارهایی غیر از پیش‌فرض‌ها نگاشت کنند*. هدف خوب بود، اما با استفاده بیشتر مشخص شد که انتظارات کاربر در مورد رفتار ورودی بسیار وابسته به نوع ابزار است. همچنین، استایل‌های «غیرفعال» تا آنجا که به سیستم ورودی اندروید مربوط می‌شود، از نوع ابزار FINGER هستند.
    • انواع ابزارهای پیش‌فرض FINGER برای اشاره و MOUSE برای اشاره‌گر هستند.