Recyclerview

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

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

العناصر الإصدار الثابت إصدار مرشح الإصدار التجريبي الإصدار التجريبي الأول
recyclerview 1.4.0 - - -
recyclerview-selection 1.1.0 - - 1.2.0-alpha01
تاريخ آخر تعديل لهذه المكتبة: 15 كانون الثاني (يناير) 2025

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

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

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

Groovy

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

15 كانون الثاني (يناير) 2025

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

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

  • Adaptive إتاحة معدّل التحديث: يُطلِق RecyclerView الآن setFrameContentVelocity عند الانتقال عبر OverScroller (مثلاً عند الانتهاء من التمرير السريع أو التمرير السلس). (I8f8a4)

الإصدار 1.4.0-rc01

18 أيلول (سبتمبر) 2024

تم إصدار الإصدار androidx.recyclerview:recyclerview:1.4.0-rc01 بدون أي تغييرات منذ الإصدار 1.4.0-alpha02. يتضمّن الإصدار 1.4.0-rc01 عمليات الربط هذه.

التغييرات منذ الإصدار 1.3.2

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

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

  • Adaptive إتاحة معدّل التحديث: يُطلِق RecyclerView الآن setFrameContentVelocity عند الانتقال عبر OverScroller (مثلاً عند الانتهاء من التمرير السريع أو التمرير السلس). (I8f8a4)

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

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

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

  • تمت إزالة التحديد اليدوي للوصول إلى واجهات برمجة تطبيقات المنصة الجديدة لأنّ ذلك يحدث تلقائيًا من خلال وضع نماذج لواجهات برمجة التطبيقات عند استخدام 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

الإصدار 1.4.0-beta01

21 آب (أغسطس) 2024

تم إصدار الإصدار androidx.recyclerview:recyclerview:1.4.0-beta01 بدون أي تغييرات منذ الإصدار 1.4.0-alpha02. يتضمّن الإصدار 1.4.0-beta01 عمليات الربط هذه.

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

الإصدار 1.4.0-alpha02

7 آب (أغسطس) 2024

تم تحرير androidx.recyclerview:recyclerview:1.4.0-alpha02. يتضمّن الإصدار 1.4.0-alpha02 عمليات الربط هذه.

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

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

  • إتاحة معدّل تحديث متغيّر: يُطلِق RecyclerView الآن setFrameContentVelocity عند التمرير عبر OverScroller (مثلاً عند التوقف عن التمرير السريع أو التمرير السلس). (I8f8a4)

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

  • واجهات برمجة التطبيقات ViewCompat.LAYOUT_DIRECTION_ التي سيتم إيقافها نهائيًا (I51710 وb/317055535)
  • أضِف واجهة برمجة التطبيقات RecyclerView$LayoutManager#isLayoutReversed. (I4970e)

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

  • تمت إزالة التحديد اليدوي للوصول إلى واجهات برمجة تطبيقات المنصة الجديدة لأنّ ذلك يحدث تلقائيًا من خلال وضع نماذج لواجهات برمجة التطبيقات عند استخدام 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. إذا كنت تستخدم 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. إذا كنت تستخدم Compose 1.2.0-beta02 أو إصدارًا أحدث وكنت تستخدم MyComposeAdapter وDisposeOnViewTreeLifecycleDestroyed ViewCompositionStrategy الموضّحين في إرشادات التشغيل التفاعلي السابقة، عليك إزالتهما، لأنّهما لم يعُدَا تحسينًا على الحالة التلقائية.

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

  • تمت إضافة تعليقات توضيحية حول قابلية العدم لعدد من الطرق والمَعلمات لتحسين التحذيرات من أداة lint لمستخدمي Java وتحسين إمكانية التشغيل التفاعلي لمستخدمي Kotlin. قد يكون هذا التغيير مُهملاً لبعض مستخدمي Kotlin وقد يؤدي إلى ظهور تحذيرات أو أخطاء إضافية في أداة lint لبعض مستخدمي Java. (I61829، b/236487044؛ Ia0b6f؛ I6f119، b/236487209؛ Ibe1de، b/236487210)

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

  • تأكَّد من أنّ خدمات تسهيل الاستخدام تتعامل مع الشبكات على أنّها شبكات من خلال ضبط اسم فئة معلومات عقدة تسهيل الاستخدام. (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)

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

  • الدمج مع مكتبة PoolingContainer الجديدة في AndroidX (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 نفسه. يمكنك الاطّلاع على مشاركة المدونة لمعرفة مزيد من المعلومات.

استعادة الحالة بشكلٍ بطيء: يمكن الآن لتكييف 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

    • MergeAdapter: محوِّل جديد في RecyclerView يمكنه دمج محوِّلات متعددة بشكل خطي.
    MyAdapter adapter1 = ...;
    AnotherAdapter adapter2 = ...;
    MergeAdapter merged = new MergeAdapter(adapter1, adapter2);
    recyclerView.setAdapter(mergedAdapter);
    

    في المثال أعلاه، سيعرض MergeAdapter العناصر من adapter1 متبوعةً بـ adapter2.

  • RecyclerView.Adapter استعادة الحالة بشكلٍ غير نشط:

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

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

    myAdapter.setStateRestorationStrategy(StateRestorationStrategy.WHEN_NOT_EMPTY);
    

    لجعل RecyclerView ينتظر إلى أن يصبح المحوِّل غير فارغ قبل استعادة موضع التمرير.

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

    • إذا كنت تريد أن تواصل خدمات تسهيل الاستخدام (مثل Talkback) الإشارة إلى العدد وفهرس العنصر للمستخدم، عليك ملء CollectionInfo وCollectionItemInfo بنفسك.

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

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

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

الإصدار 1.2.0-alpha01

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

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

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

  • تم حلّ مشاكل بسيطة في FastScroller متعلّقة برسم RTL ودقة اللمس (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/1130728)
  • تم إيقاف 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)
  • تمت إضافة طريقة جديدة لاستخدام smoothScrollBy: ‏ 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، مطروحًا منه الحشو، على الرغم من قيمة clipToPadding. (aosp/1130728)

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

  • تم إصلاح مشكلة كانت تؤدي إلى إنشاء RecyclerView لعناصر متكررة في بنية تسهيل الاستخدام لعناصر RecyclerView. (aosp/1130618)
  • تم إصلاح مشكلة عدم عمل التسلسلات الهرميّة لإمكانية الاستخدام الافتراضي في RecyclerViews.
  • تم إصلاح مشكلة عدم استخدام مثيل ItemDelegate المخصّص.

الإصدار 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 المُرسَلة إلى عمليات التمرير المُسبَق المتداخلة على القيمة 0 عندما لا يمكن لـ 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 للّمس عند الانتقال للأعلى أو للأسفل، ما كان يؤدي إلى الانتقال للأعلى أو للأسفل في NestedScrollingParent. (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. يمكن العثور على عمليات الربط المضمّنة في هذا الإصدار هنا.

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

  • تمت إضافة طريقة جديدة لاستخدام smoothScrollBy: ‏ 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 drawable (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) OnItemTouchListener اعتراض 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) مع ضبط القيمة true.
    • يُرجى الاطّلاع على المستندات حول GridLayoutManager#setUsingSpansToEstimateScrollbarDimensions(boolean) للحصول على مزيد من المعلومات.

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

  • تسهيل الاستخدام: كان هناك خطأ يؤدي إلى عدم ربط ItemDelegate المرتبط بـ RecyclerViewAccessibilityDelegate في RecyclerView بـ itemView في ViewHolder بعد إعادة استخدام 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)

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

  • إصلاح خلل في RV حيث لا يتم إيقاف 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. ستتم إزالة هذه الطرق في إصدار مستقبلي.

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

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

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

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

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

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

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

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

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

أهمّ الميزات

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

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

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

Recyclerview-Selection الإصدار 1.1.0-rc01

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

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

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

  • تم حلّ مشكلة تعذُّر الانتقال للأعلى أو للأسفل في RecyclerView باستخدام إيماءة اختيار إذا كان يتفاعل مع عنصر AppBarLayout قابل للانتقال (aosp/1193934).

RecyclerView-Selection Version 1.1.0-beta01

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

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

تحسينات عامة على الثبات في ما يتعلّق بالعمليات الدفاعية وإدارة الحالة الداخلية

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

  • تحسين إدارة حالة المكتبة وتفسير أحداث CANCEL، ما أدّى إلى تحسينات في الثبات

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

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