عرض لإعادة التدوير

يمكنك عرض مجموعات كبيرة من البيانات في واجهة المستخدم مع تقليل استخدام الذاكرة.

يعرض هذا الجدول كل العناصر في مجموعة androidx.recyclerview.

العناصر الإصدار المستقر سحب المرشح الإصدار التجريبي إصدار أولي
إعادة التدوير 1.3.2 - - 1.4.0-alpha02
تحديد طريقة إعادة التدوير 1.1.0 - - 1.2.0-alpha01
تم إجراء آخر تعديل لهذه المكتبة في 7 أغسطس 2024.

إعلان التبعيات

لإضافة تبعية على RecyclerView، يجب إضافة مستودع Google Maven إلى مشروعك. الاطّلاع على مستودع Maven من Google لمزيد من المعلومات.

أضِف الملحقات التابعة للعناصر التي تحتاجها في ملف build.gradle لـ لتطبيقك أو الوحدة التي تستخدمها:

رائع

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

Kotlin

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

لمزيد من المعلومات حول العناصر الاعتمادية، يُرجى الاطّلاع على إضافة تبعيات الإصدار.

ملاحظات

تساعدنا ملاحظاتك في تحسين Jetpack. يُرجى إعلامنا إذا اكتشفت مشاكل جديدة أو كان لديك أفكار لتحسين هذه المكتبة. يُرجى إلقاء نظرة على المشاكل الحالية في هذه المكتبة قبل إنشاء مكتبة جديدة. يمكنك إضافة تصويتك إلى مشكلة حالية عن طريق بالنقر فوق زر النجمة.

إنشاء عدد جديد

يُرجى الاطّلاع على مستندات أداة تتبُّع المشاكل. لمزيد من المعلومات.

الإصدار 1.4

الإصدار 1.4.0-alpha02

7 أغسطس 2024

تم طرح androidx.recyclerview:recyclerview:1.4.0-alpha02. يحتوي الإصدار 1.4.0-alpha02 على عمليات التنفيذ هذه.

ملاحظة عن التوافق: لن يتم تجميع هذا الإصدار إلا من خلال حزمة تطوير البرامج (SDK) لواجهة برمجة التطبيقات 35 (Vanilla Icecream) أو إصدار أحدث. في حال ظهور تحذيرات AGP (المكوّن الإضافي لنظام Gradle المتوافق مع Android) عند الترقية، يمكنك إيقافها.

التغييرات في واجهة برمجة التطبيقات

  • واجهات برمجة تطبيقات ViewCompat.LAYOUT_DIRECTION_ التي تم إيقافها نهائيًا (I51710، b/317055535)

الميزات الجديدة

  • التوافق مع معدّلات إعادة التحميل المتغيّرة: تستدعي RecyclerView الآن القيمة "setFrameContentVelocity" عند التنقّل باستخدام "أداة الانتقال للأعلى أو للأسفل" (مثل الاستقرار من التمرير السريع أو الانتقال السلس). (I8f8a4)

التغييرات الأخرى

  • تمت إزالة التخطيط اليدوي للوصول إلى واجهات برمجة التطبيقات الجديدة للنظام الأساسي نظرًا لحدوث ذلك تلقائيًا عبر نماذج واجهة برمجة التطبيقات عند استخدام R8 مع AGP 7.3 أو إصدار أحدث (مثل R8 الإصدار 3.3) وكذلك لجميع الإصدارات عند استخدام AGP 8.1 أو الإصدارات الأحدث (مثل D8 الإصدار 8.1). وننصح العملاء الذين لا يستخدمون AGP بالتحديث إلى الإصدار 8.1 من نظام التشغيل D8 أو الإصدارات الأحدث. يُرجى مراجعة هذه المقالة للاطّلاع على مزيد من التفاصيل. (Ia60e0، b/345472586)
  • إضافة نوع عرض العنصر إلى RecyclerView ربط/إنشاء أقسام التتبع، وتصنيف عمليات الجلب المسبق للمركبات الترفيهية على أنّها "مفروضة - الإطار التالي مطلوب" إذا كان من المتوقّع أن يتم استخدامها في الإطار التالي، وبالتالي يجب أن يبدأ العمل في أقرب وقت ممكن. (I8ec3e، وb/309523615)
  • يجب تحديث compileSdk إلى 35 (راجِع "ملاحظة التوافق" أعلاه لمعرفة التفاصيل). 5dc41be

مساهمة خارجية

  • تم إيقاف GestureDetectorCompat نهائيًا بسبب توفّر GestureDetector من minSdk. (Icc4cd)

الإصدار 1.4.0-alpha01

18 تشرين الأول (أكتوبر) 2023

تم طرح androidx.recyclerview:recyclerview:1.4.0-alpha01. يحتوي الإصدار 1.4.0-alpha01 على هذه عمليات التنفيذ.

التغييرات في واجهة برمجة التطبيقات

  • إضافة واجهة برمجة تطبيقات RecyclerView$LayoutManager#isLayoutReversed (I4970e)

إصلاح الأخطاء

  • إصلاح الخطأ الذي يتسبب في حدوث أعطال متقطّعة أثناء عرض الصور المتحركة (I42f22b) (مضمّن أيضًا في الإصدار 1.3.2)

الإصدار 1.3.2

الإصدار 1.3.2

18 تشرين الأول (أكتوبر) 2023

تم طرح androidx.recyclerview:recyclerview:1.3.2. يحتوي الإصدار 1.3.2 على عمليات الالتزام هذه.

إصلاح الأخطاء

  • إصلاح خطأ يتسبب في حدوث أعطال متقطعة أثناء تشغيل الصور المتحركة. (I42f22b)

الإصدار 1.3.1

الإصدار 1.3.1

26 تموز (يوليو) 2023

تم طرح androidx.recyclerview:recyclerview:1.3.1، ولم يتم إجراء أي تغييرات منذ الإصدار 1.3.1-rc01. يحتوي الإصدار 1.3.1 على عمليات الالتزام هذه.

للاطّلاع على ملاحظات الإصدار السابقة، يُرجى مراجعة صفحة "ملاحظات الإصدار".

الإصدار 1.3.1-rc01

24 أيار (مايو) 2023

تم طرح androidx.recyclerview:recyclerview:1.3.1-rc01. يحتوي الإصدار 1.3.1-rc01 على هذه عمليات التنفيذ.

يجب على مستخدمي ViewPager2 التحديث إلى الإصدار 1.1.0-beta02 على الأقل عند التحديث إلى هذا الإصدار من RecyclerView لتجنُّب حدوث الأعطال.

التغييرات في واجهة برمجة التطبيقات

  • إضافة طريقتَي setDebugAssertionsEnabled وsetVerboseLoggingEnabled جديدتَين للمساعدة في تصحيح الأخطاء المتعلّقة بـ RecyclerView داخل التطبيقات (I514b9)

إصلاح الأخطاء

  • يمكنك إصلاح الأعطال لمستخدمي ViewTreeLifecycleOwner (بما في ذلك ComposeView) من خلال إعادة إرفاق طرق العرض المنفصلة مؤقتًا عند الاتصال بـ onBind. (I7244f2c، b/265347515، b/283288295)

الإصدار 1.3.0

الإصدار 1.3.0

8 آذار (مارس) 2023

تم طرح androidx.recyclerview:recyclerview:1.3.0، ولم يتم إجراء أي تغييرات منذ الإصدار 1.3.0-rc01. يحتوي الإصدار 1.3.0 على هذه عمليات التنفيذ.

تغييرات مهمة منذ الإصدار 1.2.0

  • يحتوي هذا الإصدار على تحسينات في الأداء (كانت مضمّنة سابقًا في 1.3.0-alpha02 و1.3.0-beta01) عند استخدامه مع Jetpack Compose. إذا كنت تستخدم ميزة "إنشاء" 1.2.0-beta02 أو إصدار أحدث وكنت تستخدم MyComposeAdapter وDisposeOnViewTreeLifecycleDestroyed ViewCompositionStrategy الموضّحين في إرشادات إمكانية التشغيل التفاعلي السابقة، عليك إزالة هذين العنصرَين لأنّهما لم يعُدا أفضل من الحالة التلقائية.
  • تمت إضافة طريقة ConcatAdapter.getWrappedAdapterAndPosition جديدة للسماح باسترداد معلومات المحوّل المغلف في الحالات التي لا يتوفّر فيها ViewHolder، مثل SpanSizeLookup (I2bd4c، b/191543920).

الإصدار 1.3.0-rc01

21 أيلول (سبتمبر) 2022

تم طرح androidx.recyclerview:recyclerview:1.3.0-rc01. يحتوي الإصدار 1.3.0-rc01 على هذه عمليات التنفيذ.

  • لم تطرأ أي تغييرات منذ الإصدار الأخير.

الإصدار 1.3.0-beta02

10 آب (أغسطس) 2022

تم طرح androidx.recyclerview:recyclerview:1.3.0-beta02. يحتوي الإصدار 1.3.0-beta02 على عمليات التنفيذ هذه.

التغييرات في واجهة برمجة التطبيقات

  • تمت إزالة التعليقات التوضيحية للتوافق مع القيم الفارغة في الإصدارات 1.3.0-beta01 لأنّها تمثّل تغييرًا كبيرًا غير متوافق مع المصدر لمستخدمي لغة Kotlin (I7a258 وI1557e6 وI8db76).

الإصدار 1.3.0-beta01

29 حزيران (يونيو) 2022

تم طرح androidx.recyclerview:recyclerview:1.3.0-beta01. يحتوي الإصدار 1.3.0-beta01 على عمليات التنفيذ هذه.

الميزات الجديدة

  • يحتوي هذا الإصدار التجريبي على تحسينات في الأداء (كانت مضمّنة سابقًا في 1.3.0-alpha02 عند استخدامه مع Jetpack Compose. إذا كنت تستخدم ميزة "إنشاء" 1.2.0-beta02 أو إصدار أحدث وكنت تستخدم MyComposeAdapter وDisposeOnViewTreeLifecycleDestroyed ViewCompositionStrategy الموضّحين في إرشادات إمكانية التشغيل التفاعلي السابقة، عليك إزالة هذين العنصرَين لأنّهما لم يعُدا أفضل من الحالة التلقائية.

التغييرات في واجهة برمجة التطبيقات

  • تمت إضافة تعليقات توضيحية حول قابلية القيم الفارغة لعدد من الطرق والمعلمات لتحسين تحذيرات Lint لمستخدمي Java وإمكانية التشغيل التفاعلي لمستخدمي Kotlin. قد يكون هذا تغييرًا يكسر المصدر لبعض مستخدمي Kotlin وينتج عنه تحذيرات/أخطاء إضافية في Lint لبعض مستخدمي Java. (I61829 وb/236487044 وIa0b6f وI6f119 وb/236487209 وIbe1de وb/236487210)

إصلاح الأخطاء

  • تأكّد من التعامل مع الشبكات كشبكات من خلال خدمات a11y عن طريق ضبط اسم فئة معلومات العقدة a11y. (I12812)

الإصدار 1.3.0-alpha02

6 نيسان (أبريل) 2022

تم طرح androidx.recyclerview:recyclerview:1.3.0-alpha02. يحتوي الإصدار 1.3.0-alpha02 على هذه عمليات التنفيذ.

التغييرات في واجهة برمجة التطبيقات

  • إضافة طرق BuildCompat تجريبية لحِزم SDK المستقبلية (Iafd82، b/207528937)
  • تمت إضافة طريقة ConcatAdapter.getWrappedAdapterAndPosition جديدة للسماح باسترداد معلومات المحوّل المرفق في الحالات التي لا تتوفّر فيها ميزة ViewHolder، مثل SpanSizeLookup (I2bd4c، b/191543920).

إصلاح الأخطاء

  • الدمج مع مكتبة AndroidX PoolingContainer الجديدة (Ib89d2)
  • ضبط مسافة التمرير لإجراء تسهيل الاستخدام (If74ae)

الإصدار 1.3.0-alpha01

15 أيلول (سبتمبر) 2021

تم طرح androidx.recyclerview:recyclerview:1.3.0-alpha01. يحتوي الإصدار 1.3.0-alpha01 على هذه عمليات التنفيذ.

الميزات الجديدة

  • تمت إضافة دعم لـ RecyclerView عبر التمرير الزائد. (Iab877)

الإصدار 1.2.0 من RecyclerView-Selection

الإصدار 1.2.0-alpha01

5 أيار (مايو) 2021

تم طرح androidx.recyclerview:recyclerview-selection:1.2.0-alpha01. يحتوي الإصدار 1.2.0-alpha01 على هذه عمليات التنفيذ.

إصلاح الأخطاء

  • حل مشكلة فقدان تعيين المفتاح/الموضع في KeyProvider أثناء عدم إعادة تدوير الإدخال بعد. (b/145767095)

الإصدار 1.2.1

الإصدار 1.2.1

2 حزيران (يونيو) 2021

تم طرح androidx.recyclerview:recyclerview:1.2.1. يحتوي الإصدار 1.2.1 على عمليات الالتزام هذه.

إصلاح الأخطاء

  • تعرض ViewHolder داخل ConcatAdapter الآن الموضع الصحيح للمحوّل عند الاستعلام عنه في معاودة الاتصال على onViewRecycled. (b/187339376)

الإصدار 1.2.0

الإصدار 1.2.0

7 نيسان (أبريل) 2021

تم طرح androidx.recyclerview:recyclerview:1.2.0. يحتوي الإصدار 1.2.0 على هذه عمليات التنفيذ.

التغييرات الرئيسية منذ الإصدار 1.1.0

ConcatAdapter: يتيح لك هذا المحوّل الجديد توصيل عدة محوّلات بسهولة في RecyclerView نفسه. يمكنك الاطّلاع على مشاركة المدونة للحصول على مزيد من المعلومات.

  • في إطار هذا التغيير، تم إيقاف ViewHolder.getAdapterPosition نهائيًا واستبداله بطريقتَين جديدتَين:

استعادة الحالة الكسولة: بإمكان محوّل RecyclerView الآن تأخير استعادة الحالة إلى أن يتم تحميل المحتوى. يمكنك الاطّلاع على المستندات لمزيد من التفاصيل.

الإصدار 1.2.0-rc01

24 آذار (مارس) 2021

تم طرح androidx.recyclerview:recyclerview:1.2.0-rc01. يحتوي الإصدار 1.2.0-rc01 على هذه عمليات التنفيذ.

إصلاح الأخطاء

  • تحتوي ConcatAdapter.Config.Builder الآن على قيم تلقائية تطابق Config.DEFAULT (b/157169835).

الإصدار 1.2.0-beta02

24 شباط (فبراير) 2021

تم طرح androidx.recyclerview:recyclerview:1.2.0-beta02. يحتوي الإصدار 1.2.0-beta02 على عمليات التنفيذ هذه.

إصلاح الأخطاء

  • تم إصلاح المشكلة المتمثلة في تسبب المساحة المتروكة العلوية في تحريك توهج التمرير الزائد الأيمن لأعلى داخل المنطقة المبطّنة، بدلاً من الأسفل للتوافق مع المساحة المتروكة. (I6b61d، b/118399122)

الإصدار 1.2.0-beta01

2 كانون الأول (ديسمبر) 2020

تم طرح androidx.recyclerview:recyclerview:1.2.0-beta01 بدون أي تغيير منذ 1.2.0-alpha06. يحتوي الإصدار 1.2.0-beta01 على عمليات التنفيذ هذه.

الإصدار 1.2.0-alpha06

1 تشرين الأول (أكتوبر) 2020

تم طرح androidx.recyclerview:recyclerview:1.2.0-alpha06. يحتوي الإصدار 1.2.0-alpha06 على هذه عمليات التنفيذ.

الميزات الجديدة

  • تمت إضافة دعم لإضافة عدة RecyclerListeners. (I70ad8، b/145767095)

التغييرات في واجهة برمجة التطبيقات

  • تم إيقاف RecyclerView.setRecyclerListener(RecyclerListener) نهائيًا. (I70ad8، b/145767095)

الإصدار 1.2.0-alpha05

22 تموز (يوليو) 2020

تم طرح 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)

المساهمات الخارجية

  • نتوجّه بالشكر إلى "كولين كروينكل" نيابةً عن Facebook على المساهمة.

الإصدار 1.2.0-alpha04

24 حزيران (يونيو) 2020

تم طرح androidx.recyclerview:recyclerview:1.2.0-alpha04. يحتوي الإصدار 1.2.0-alpha04 على هذه عمليات التنفيذ.

التغييرات في واجهة برمجة التطبيقات

  • تمت إعادة تسمية MergeAdapter إلى ConcatAdapter لتجنُّب حدوث أي التباس مع السلوكيات المختلفة لدمج البيانات (c0540c وb/158019211).

إصلاح الأخطاء

  • تحسينات على الانتقال التلقائي عند إزالة جميع العناصر المرئية (fe8670 وb/154124815)

الإصدار 1.2.0-alpha03

29 نيسان (أبريل) 2020

تم طرح androidx.recyclerview:recyclerview:1.2.0-alpha03. يحتوي الإصدار 1.2.0-alpha03 على هذه عمليات التنفيذ.

الميزات الجديدة

  • تتضمّن RecyclerView الآن طريقة nestedScrollBy تتيح التمرير الآلي المتوافق مع التمرير المدمج: (Ibaa58)

الإصدار 1.2.0-alpha02

1 نيسان (أبريل) 2020

تم طرح 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:

    • تمت إضافة واجهة برمجة تطبيقات جديدة إلى فئة RecyclerView.Adapter تسمح للمحوّل بالتحكّم في وقت استعادة حالة التنسيق.

    • على سبيل المثال، يمكنك استدعاء ما يلي:

    myAdapter.setStateRestorationStrategy(StateRestorationStrategy.WHEN_NOT_EMPTY);
    

    لجعل RecyclerView تنتظر حتى لا تكون المهايئ فارغة قبل استعادة موضع التمرير.

  • لن تتم تعبئة بيانات collectionsInfo وCollectionItemInfo تلقائيًا.

    • إذا كنت تريد أن تستمر "خدمات تسهيل الاستخدام" (مثل TalkBack) في الإشارة إلى العدد وفهرس العناصر للمستخدم، ستحتاج إلى تعبئة collectionsInfo وCollectionItemInfo بنفسك.

    • لم تعُد هذه العناصر مُعبَّأة في إطار العمل لأنّ إطار العمل لا يمكنه تحديد عدد العناصر التي لاحظها المستخدم (مثل الفواصل أو العناوين أو عناصر RecyclerView التي تمثّل عناصر متعددة تمت ملاحظتها).

إصلاح الأخطاء

  • تتجنّب RecyclerView الآن تثبيت المشاهدات خارج إطار العرض عند تغيير حجم إطار العرض
  • تم إصلاح خطأ في DiffUtil حيث قد يتم احتساب الاختلاف بشكل خاطئ عندما يتم تكرار عنصر أصلي في القائمة الأولى عدة مرات في القائمة الثانية. (b/123376278)

الإصدار 1.2.0-alpha01

18 كانون الأول (ديسمبر) 2019

تم طرح androidx.recyclerview:recyclerview:1.2.0-alpha01. يحتوي الإصدار 1.2.0-alpha01 على عمليات التنفيذ هذه.

إصلاح الأخطاء

  • تم إصلاح مشاكل بسيطة في Fast Scroller والمتعلقة بالرسم ودقة اللمس من اليمين إلى اليسار (b/143789932 وaosp/1130438)
  • تم إصلاح عطل في ItemTouchHelper عند إزالته من RecyclerView أثناء تشغيل صور ItemTouchHelper (b/140447176، aosp/1167575)

الإصدار 1.1.0

الإصدار 1.1.0

20 تشرين الثاني (نوفمبر) 2019

تم طرح androidx.recyclerview:recyclerview:1.1.0. يحتوي الإصدار 1.1.0 على عمليات التنفيذ هذه.

تغييرات مهمة منذ الإصدار 1.0.0

  • PagerSnapHelper وLinearSnapHelper يأخذان الآن المساحة المتروكة في RecyclerView في الاعتبار بغض النظر عن قيمة clipToPadding (b/139452422 وb/139012032 وaosp/1103182 وaosp/1106715 وaosp/1120728){/11
  • تم إيقاف 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)
  • تمت إضافة حمل زائد جديد من smooth scrollBy: RecyclerView#smoothScrollBy(@Px int, @Px int, @Nullable Interpolator, int duration)، الذي يتيح لك تحديد مدة بالمللي ثانية للمدة التي يجب أن يستغرقها الرسم المتحرك. (aosp/952807)

الإصدار 1.1.0-rc01

23 تشرين الأول (أكتوبر) 2019

تم طرح androidx.recyclerview:recyclerview:1.1.0-rc01. يحتوي الإصدار 1.1.0-rc01 على عمليات التنفيذ هذه.

إصلاح الأخطاء

  • تم إصلاح الخطأ "التطبيق لا يستجيب" عند تجاوز RecyclerViewAccessibilityDelegate.ItemDelegate (aosp/1138057، aosp/1133434)

الإصدار 1.1.0-beta05

9 تشرين الأول (أكتوبر) 2019

تم طرح androidx.recyclerview:recyclerview:1.1.0-beta05. يحتوي الإصدار 1.1.0-beta05 على هذه الالتزامات.

التغييرات في واجهة برمجة التطبيقات

  • بالمتابعة بشأن aosp/1106715 وaosp/1103182، يعرض الآن LinearSnapHelper وPagerSnapHelper العرض الواقع في وسط حدود RecyclerView، بدون المساحة المتروكة، على الرغم من قيمة المَعلمة lineToPadding. (aosp/1130728)

إصلاح الأخطاء

  • تم إصلاح المشكلة المتمثلة في إنشاء RecyclerView لعُقد إمكانية وصول مكررة للأطفال في RecyclerView. (aosp/1130618)
  • تم إصلاح مشكلة عدم عمل التدرّجات الهرمية لتسهيل الاستخدام في RecyclerViews.
  • تم إصلاح المشكلة المتمثلة في عدم استخدام ItemDelegates المخصص.

الإصدار 1.1.0-beta04

5 أيلول (سبتمبر) 2019

تم طرح androidx.recyclerview:recyclerview:1.1.0-beta04. يمكن الاطّلاع على صفقات الاشتراك المضمَّنة في هذا الإصدار هنا.

إصلاح الأخطاء

  • PagerSnapHelper وLinearSnapHelper يأخذان الآن المساحة المتروكة في RecyclerView في الاعتبار بغض النظر عن القيمة clipToPadding (b/139452422 وb/139012032 وaosp/1103182 وaosp/1106715)
  • تم إصلاح الخطأ المتمثل في عدم منع RecyclerView لتقاطع اللمس عندما تسبب التمرير المسبق المتداخل في تمرير NestedScrollingParent (b/138668210، aosp/1105373). يفيد هذا مكتبات مثل ViewPager2.
  • ينتقل الآن RecyclerView باستمرار إلى SCROLL_STATE_DRAGGING قبل إرسال عمليات التمرير المسبق المتداخلة (aosp/1105373).
  • لم يعُد يتم تنفيذ الانتقال المسبق المُدمَج قبل أن تتجاوز الإيماءة حدّ اللمس (b/139530818 وaosp/1105373).
  • تكون الوسيطات dx وdy المُرسلة إلى ملفات تعريف الارتباط المدمَجة صفرًا عندما يتعذّر على RecyclerView الانتقال في هذا الاتجاه (aosp/1105373).

الإصدار 1.1.0-beta03

15 آب (أغسطس) 2019

تم طرح androidx.recyclerview:recyclerview:1.1.0-beta03. يمكن الاطّلاع على صفقات الاشتراك المضمَّنة في هذا الإصدار هنا.

التغييرات في واجهة برمجة التطبيقات

  • ترسل RecyclerView الآن مسافات التمرير عبر View.onScrollChanged(int l, int t, int oldl, int oldt) لكي يتم إشعار خدمات تسهيل الاستخدام بشأن تغييرات التمرير بدقة. (aosp/1007823)

إصلاح الأخطاء

  • تم إصلاح خطأ كبير بسبب تجاوز سعة حزمة التكديس في RecyclerView وإمكانية الوصول. (aosp/1099577)

الإصدار 1.1.0-beta02

7 آب (أغسطس) 2019

تم طرح androidx.recyclerview:recyclerview:1.1.0-beta02. يمكن الاطّلاع على صفقات الاشتراك المضمَّنة في هذا الإصدار هنا.

الميزات الجديدة

  • يحتوي RecyclerView الآن على سمة نمط تلقائية: recyclerViewStyle، والتي تسمح بضبط النمط التلقائي في المظهر

إصلاح الأخطاء

  • تم إصلاح الخطأ الذي تسبب في عدم منع RecyclerView من اعتراض اللمس عند تمريرها، ما تسبّب في الانتقال من خلال Nested ScrollingParent. (b/131115697، aosp/1055911)

الإصدار 1.1.0-beta01

2 تموز (يوليو) 2019

تم طرح androidx.recyclerview:recyclerview:1.1.0-beta01. يمكن الاطّلاع على صفقات الاشتراك المضمَّنة في هذا الإصدار هنا.

الميزات الجديدة

  • يشارك "RecyclerView" الآن في التمرير المدمج عند بدء عملية تمرير في أحداث تسهيل الاستخدام. (aosp/973584)

الإصدار 1.1.0-alpha06

5 حزيران (يونيو) 2019

تم طرح androidx.recyclerview:recyclerview:1.1.0-alpha06 وandroidx.recyclerview:recyclerview-selection:1.1.0-alpha06. يمكن الاطّلاع على صفقات الاشتراك المضمَّنة في هذا الإصدار هنا.

الميزات الجديدة

  • تمت إضافة حمل زائد جديد من smooth scrollBy: RecyclerView#smoothScrollBy(@Px int, @Px int, @Nullable Interpolator, int duration)، الذي يتيح لك تحديد مدة بالمللي ثانية للمدة التي يجب أن يستغرقها الرسم المتحرك. (aosp/952807)

التغييرات في واجهة برمجة التطبيقات

  • لم يعُد GridLayoutManager وStaggeredGridLayoutManager يصنِّفان تلقائيًا عناصر النطاق الكامل كرؤوس لأغراض تسهيل الاستخدام (aosp/969703).
  • الاحتفاظ بترتيب الاختيار (حسب وقت الإنشاء) بعملة recyclerview-selection (aosp/937279)

إصلاح الأخطاء

  • تم إصلاح الخطأ الذي كان يؤدي إلى تنقّل بسرعة RecyclerView مع سرعات غير صحيحة أثناء التنقّل المتداخل. (aosp/961642)
  • تمت إضافة تحسينات على ثبات النظام إلى "recyclerview-selection" (aosp/960213 وaosp/926296).

الإصدار 1.1.0-alpha05

7 أيار (مايو) 2019

تم طرح androidx.recyclerview:recyclerview:1.1.0-alpha05 وandroidx.recyclerview:recyclerview-selection:1.1.0-alpha05. يمكن الاطّلاع على صفقات الاشتراك المضمَّنة في هذا الإصدار هنا.

الميزات الجديدة

  • يمكن إلغاء LinearLayoutManager.calculateExtraLayoutSpace(RecyclerView.State, int[]) لتخصيص مقدار مساحة التصميم الإضافية التي يجب إضافتها إلى أي من جانبَي RecyclerView المرتبط. (aosp/931259)

التغييرات في واجهة برمجة التطبيقات

  • إضافة واجهة برمجة التطبيقات لاسترداد DividerItemDecoration قابل للرسم (aosp/937282)
  • يمكنك إيقاف LinearLayout.getExtraLayoutSpace(RecyclerVew.State) نهائيًا لصالح آلية جديدة تتيح الحصول على مساحة تنسيق إضافية مخصّصة على كلا الجانبين. الطريقة الجديدة هي LinearLayout.calculateExtraLayoutSpace(RecyclerView.state, int[]) (aosp/931259)

إصلاح الأخطاء

  • تم محو اختيار الإيماءات (aosp/940781)
  • الاحتفاظ بترتيب التحديد (حسب وقت الإنشاء) (b/128455535)

الإصدار 1.1.0-alpha04

3 نيسان (أبريل) 2019

تم طرح androidx.recyclerview:recyclerview:1.1.0-alpha04. يمكن الاطّلاع على صفقات الاشتراك المضمَّنة في هذا الإصدار هنا.

إصلاح الأخطاء

  • لم يعترض RV OnItemListener سابقًا على ACTION_UP، ما يمنع OnItemTouchListener من حظر الرمز البرمجي الآخر من الاستجابة لأمر ACTION_UP. تم إصلاح هذه المشكلة الآن: (aosp/916137)

الإصدار 1.1.0-alpha03

13 آذار (مارس) 2019

تم طرح androidx.recyclerview:recyclerview:1.1.0-alpha03. يمكن الاطّلاع هنا على القائمة الكاملة لخطط الاشتراك المضمَّنة في هذا الإصدار.

الميزات الجديدة

  • GridLayoutManager: تفعيل، ودرجة دقة أعلى GridLayoutManager لتقدير أبعاد شريط التمرير (aosp/838836):
    • لاستخدام معلومات الامتداد لتقدير أبعاد شريط التمرير للسمة GridLayoutManager.
    • للتفعيل، يجب ضبط قيمة الطلب GridLayoutManager#setUsingSpansToEstimateScrollbarDimensions(boolean) على "صحيح".
    • راجِع المستندات المتوفّرة في GridLayoutManager#setUsingSpansToEstimateScrollbarDimensions(boolean) للحصول على مزيد من المعلومات.

إصلاح الأخطاء

  • إمكانية الوصول: كان هناك خطأ تتمثّل في عدم ربط العنصر ItemDelegate المرتبط بـ RecyclerViewAccessibilityDelegate في RecyclerView بعنصر itemView في ViewHolder، ما أدى إلى تعطُّل عنصر إمكانية الوصول. وقد تم حلّ هذه المشكلة الآن (aosp/917740).

الإصدار 1.1.0-alpha02

30 كانون الثاني (يناير) 2019

تم طرح androidx.recyclerview:recyclerview 1.1.0-alpha02.

التغييرات في واجهة برمجة التطبيقات

  • تم إيقاف RecyclerView.setLayoutFrozen(boolean) وRecyclerView.isLayoutFrozen() لصالح RecyclerView.suppressLayout(boolean) وRecyclerView.isLayoutSuppressed(). (aosp/839414)
  • تم إيقاف RecyclerView.setLayoutTransition(LayoutTransition) نهائيًا رسميًا، وستعرض دالة IllegalArgumentException عند طلبها باستخدام قيمة غير فارغة. (aosp/839414)

إصلاح الأخطاء

  • إصلاح خطأ في المركبات الترفيهية حيث لا يتوقف SmoothScroller مطلقًا (aosp/843741)
  • تم إصلاح خطأ تعذّر استدعاء SCROLL_STATE_IDLE في نهاية التمرير المتحرك. (aosp/812576)

الإصدار 1.1.0-alpha01

3 كانون الأول (ديسمبر) 2018

تم طرح androidx.recyclerview 1.1.0-alpha01 وandroidx.recyclerview-selection 1.1.0-alpha01.

androidx.recyclerview 1.1.0-alpha01

التغييرات في واجهة برمجة التطبيقات

  • 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)
  • استراتيجية ثابتة للقطات سريعة في PagerSnapHelper للتعامل مع المشاهدات الثانوية غير المعتادة (aosp/795752)

androidx.recyclerview-selection 1.1.0-alpha01

إصلاح الأخطاء

  • تم إصلاح ConcurrentModificationException عند تغيير مجموعة البيانات مع الإزالة التحديد.

الإصدار 1.1.0 من RecyclerView-Selection

الإصدار 1.1.0 من RecyclerView-Selection

27 كانون الثاني (يناير) 2021

تم طرح androidx.recyclerview:recyclerview-selection:1.1.0. يحتوي الإصدار 1.1.0 على هذه عمليات التنفيذ.

التغييرات الرئيسية منذ الإصدار 1.0.0

  • تحسينات عديدة على ثبات النظام
  • تم إيقاف withGestureTooltypes وwithPointerTooltypes طريقة في SelectionTracker.Builder. ستتم إزالة هذه الطرق في إصدار مستقبلي.

الإصدار 1.1.0-rc03 من RecyclerView-Selection

1 تشرين الأول (أكتوبر) 2020

تم طرح androidx.recyclerview:recyclerview-selection:1.1.0-rc03. يحتوي الإصدار 1.1.0-rc03 على هذه عمليات التنفيذ.

إصلاح الأخطاء

نشكر "ستيفان كيسلر" على الإصلاحات والملاحظات.

  • تم إصلاح المشكلة المتمثلة في استدعاء OnClickListeners للعرض الفرعي أثناء اختيار نشط.
  • معالج الماوس (تحديد النطاق) > التعامل بأمان مع عمليات الانتقال غير المتوقّعة (b/167821507)

الإصدار 1.1.0-rc02 من RecyclerView-Selection

2 أيلول (سبتمبر) 2020

تم طرح androidx.recyclerview:recyclerview-selection:1.1.0-rc02. يحتوي الإصدار 1.1.0-rc02 على هذه عمليات التنفيذ.

أهم التفاصيل

  • تمت معالجة العديد من التراجعات من 1.0 في معالجة الإدخال.
  • تم تعديل المكتبة لاستخدام "onRequestDisallowInterceptTouchEvent"، ما يسمح بتشغيل اللعبة بشكل جيد باستخدام ItemTouchHelper (ما عليك سوى تمريرها سريعًا).

إصلاح الأخطاء

  • تم إصلاح مشكلة أخطأت مكتبة الاختيارات في تفسير أحداث GestureDetector، ما أدى إلى فقدان النقرات أثناء التحديد النشط (b/165030422).
  • تم إصلاح المشكلة المتمثلة في عدم تعديل الاختيار لإظهار العناصر التي تمت إزالتها من المحوّل. (b/138932671)
  • تم إصلاح مشكلة تنشيط عناصر RecyclerView لأحداث onClick بينما تحتوي SelectionTracker على اختيار نشط (b/161162268)
  • تعالج الآن "onRequestDisallowInterceptTouchEvent" بشكل صحيح
  • تم إصلاح مشكلة ظهور ”Cannot call this method in a scroll callback” أثناء تمرير الماوس على Q
  • تم تعديل المستندات (خاصةً في StableIdKeyProvider) لتوضيح متطلبات مثيل RecyclerView بوضوح.

الإصدار 1.1.0-rc01 من Recyclerview

5 شباط (فبراير) 2020

تم طرح androidx.recyclerview:recyclerview-selection:1.1.0-rc01. يحتوي الإصدار 1.1.0-rc01 على عمليات التنفيذ هذه.

إصلاح الأخطاء

  • تم إصلاح مشكلة صعوبة تمرير RecyclerView باستخدام تحديد إيماءة في حال تفاعلها مع AppBarLayout قابل للتمرير (aosp/1193934)

الإصدار 1.1.0-beta01 من RecyclerView-Selection

4 كانون الأول (ديسمبر) 2019

تم طرح androidx.recyclerview:recyclerview-selection:1.1.0-beta01. يحتوي الإصدار 1.1.0-beta01 على عمليات التنفيذ هذه.

تحسينات عامة في الاستقرار تتعلق بعمليات الفحص الدفاعية وإدارة الحالة الداخلية.

إصلاح الأخطاء

  • تم تحسين إدارة حالة المكتبة وتفسير أحداث الإلغاء، ما يؤدّي إلى تحسينات في ثبات النظام.

التغييرات في واجهة برمجة التطبيقات

  • تمت إضافة معلمة نوع مفتاح الاختيار إلى الفئات والطرق عند عدم وجودها.
  • طرق الإيقاف:
    • SelectionTracker.Builder#withPointerTooltype
    • SelectionTracker.Builder#withالإيماءاتTooltype
    • كانت هذه الطرق تهدف إلى أن يربط المطوّرون سلوك المؤشر أو الإيماءات بأنواع أدوات غير الإعدادات التلقائية*. كان الغرض من ذلك الإعلان جيدًا، ولكن بعد إجراء مزيد من الاستخدام، اتّضح أنّ توقعات المستخدمين بشأن سلوك الإدخال مرتبطة بنوع الأدوات جدًا. أيضًا، "سلبية" النمط من نوع أداة FINGER بقدر ما يتعلق بنظام إدخال Android.
    • أنواع الأدوات التلقائية هي FINGER للإيماءة والماوس للمؤشر.