Recyclerview
يسرد هذا الجدول جميع العناصر في المجموعة androidx.recyclerview.
| العناصر | الإصدار الثابت | إصدار محتمل | الإصدار التجريبي | الإصدار الأوّلي |
|---|---|---|---|---|
| recyclerview | 1.4.0 | - | - | - |
| recyclerview-selection | 1.2.0 | - | - | 1.3.0-alpha01 |
تحديد الاعتماديات
لإضافة اعتمادية على RecyclerView، يجب تضمين مستودع Google Maven في مشروعك. اطّلِع على مستودع Maven من Google لمزيد من المعلومات.
أضِف الاعتماديات الخاصة بالعناصر التي تحتاج إليها في ملف build.gradle لتطبيقك أو وحدتك:
Groovy
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" }
Kotlin
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. يُرجى إعلامنا إذا اكتشفت مشاكل جديدة أو كانت لديك أفكار لتحسين هذه المكتبة. يُرجى الاطّلاع على المشاكل الحالية في هذه المكتبة قبل إنشاء مشكلة جديدة. يمكنك إضافة صوتك إلى مشكلة حالية من خلال النقر على زر النجمة.
يُرجى الاطّلاع على مستندات Issue Tracker للحصول على مزيد من المعلومات.
الإصدار 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) أو إصدار أحدث. إذا ظهرت لك تحذيرات بشأن "المكوّن الإضافي لنظام Gradle المتوافق مع Android" (AGP) عند الترقية، يمكنك إيقافها.
الميزات الجديدة
Adaptiveدعم معدّل التحديث:RecyclerViewيتم الآن استدعاءsetFrameContentVelocityعند التمرير سريعًا من خلالOverScroller(مثل التمرير السريع أو التمرير السلس). (I8f8a4)
تغييرات واجهة برمجة التطبيقات
- أضِف واجهة برمجة التطبيقات
RecyclerView$LayoutManager#isLayoutReversed. (I4970e)
التغييرات الأخرى
- تمت إزالة التحديد اليدوي لنطاق الوصول إلى واجهات برمجة التطبيقات الجديدة للمنصة لأنّ ذلك يحدث تلقائيًا من خلال تصميم واجهة برمجة التطبيقات عند استخدام R8 مع الإصدار 7.3 أو إصدار أحدث من "المكوّن الإضافي لنظام Gradle المتوافق مع Android" (مثل الإصدار 3.3 من R8)، وجميع عمليات الإنشاء عند استخدام الإصدار 8.1 أو إصدار أحدث من "المكوّن الإضافي لنظام Gradle المتوافق مع Android" (مثل الإصدار 8.1 من D8). ننصح العملاء الذين لا يستخدمون "مكوّن Android الإضافي لبرنامج Gradle" بالترقية إلى الإصدار 8.1 أو إصدار أحدث من D8. يُرجى مراجعة هذه المقالة للاطّلاع على مزيد من التفاصيل. (Ia60e0، b/345472586)
- أضِف نوع عرض العنصر إلى
RecyclerViewلربط/إنشاء أقسام التتبُّع، وصنِّف عمليات الجلب المُسبَق لـ 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) أو إصدار أحدث. إذا ظهرت لك تحذيرات بشأن "المكوّن الإضافي لنظام Gradle المتوافق مع Android" (AGP) عند الترقية، يمكنك إيقافها.
الإصدار 1.4.0-alpha02
7 أغسطس 2024
تم طرح androidx.recyclerview:recyclerview:1.4.0-alpha02. يتضمّن الإصدار 1.4.0-alpha02 هذه التعديلات.
ملاحظة حول التوافق: لن يتم تجميع هذا الإصدار إلا مع حزمة تطوير البرامج (SDK) للإصدار 35 من واجهة برمجة التطبيقات (Vanilla Ice Cream) أو إصدار أحدث. إذا ظهرت لك تحذيرات بشأن "المكوّن الإضافي لنظام Gradle المتوافق مع Android" (AGP) عند الترقية، يمكنك إيقافها.
الميزات الجديدة
- إتاحة معدّل التحديث المتغيّر: تستدعي السمة RecyclerView الآن الدالة
setFrameContentVelocityعند التمرير سريعًا من خلال OverScroller (مثل التمرير السريع أو التمرير السلس). (I8f8a4)
تغييرات واجهة برمجة التطبيقات
- واجهات برمجة التطبيقات المتوقّفة نهائيًا
ViewCompat.LAYOUT_DIRECTION_(I51710، b/317055535) - أضِف واجهة برمجة التطبيقات
RecyclerView$LayoutManager#isLayoutReversed. (I4970e)
التغييرات الأخرى
- تمت إزالة التحديد اليدوي لنطاق الوصول إلى واجهات برمجة التطبيقات الجديدة للمنصة لأنّ ذلك يحدث تلقائيًا من خلال تصميم واجهة برمجة التطبيقات عند استخدام R8 مع الإصدار 7.3 أو إصدار أحدث من "المكوّن الإضافي لنظام Gradle المتوافق مع Android" (مثل الإصدار 3.3 من R8)، وجميع عمليات الإنشاء عند استخدام الإصدار 8.1 أو إصدار أحدث من "المكوّن الإضافي لنظام Gradle المتوافق مع Android" (مثل الإصدار 8.1 من D8). ننصح العملاء الذين لا يستخدمون "مكوّن Android الإضافي لبرنامج Gradle" بالترقية إلى الإصدار 8.1 أو إصدار أحدث من D8. يُرجى مراجعة هذه المقالة للاطّلاع على مزيد من التفاصيل. (Ia60e0، b/345472586)
- أضِف نوع عرض العنصر إلى
RecyclerViewلربط/إنشاء أقسام التتبُّع، وصنِّف عمليات الجلب المُسبَق لـ 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وDisposeOnViewTreeLifecycleDestroyedViewCompositionStrategyالموضّحة في إرشادات التشغيل التفاعلي السابقة، عليك إزالة هذه العناصر، لأنّها لم تعُد تحسّن الحالة التلقائية. - تمت إضافة طريقة
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وDisposeOnViewTreeLifecycleDestroyedViewCompositionStrategyالموضّحة في إرشادات التشغيل التفاعلي السابقة، عليك إزالة هذه العناصر، لأنّها لم تعُد تحسّن الحالة التلقائية.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة تعليقات توضيحية بشأن إمكانية قبول القيم الخالية لعدد من الطرق والمَعلمات من أجل تحسين تحذيرات أداة 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.3.0 من RecyclerView-Selection
الإصدار 1.3.0-alpha01
17 ديسمبر 2025
تم طرح androidx.recyclerview:recyclerview-selection:1.3.0-alpha01. يتضمّن الإصدار 1.3.0-alpha01 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- السماح لنقطة الاتصال داخل التحديد بإزالة التحديد الحالي (I0eae7، b/389814214): يمنح هذا الخيار المطوّرين تحكّمًا أكبر في ما إذا كانت أي عناصر أخرى تم تحديدها مسبقًا ستبقى محددة أو سيتم إلغاء تحديدها عند النقر على
RecyclerViewلاختيار عنصر.
الإصدار 1.2.0 من RecyclerView-Selection
الإصدار 1.2.0
20 مايو 2025
تم طرح androidx.recyclerview:recyclerview-selection:1.2.0. يتضمّن الإصدار 1.2.0 هذه التعديلات.
التغييرات المهمة منذ الإصدار 1.1.0
- إصلاح المشكلة التي تؤدي إلى تحويل النقرات إلى عمليات سحب عند تحريك الماوس بشكل طفيف
- تم إصلاح مشكلة فقدان ربط المفتاح/الموضع في KeyProvider أثناء عدم إعادة تدوير الإدخال بعد.
الإصدار 1.2.0-rc01
7 مايو 2025
تم طرح androidx.recyclerview:recyclerview-selection:1.2.0-rc01. يتضمّن الإصدار 1.2.0-rc01 هذه التعديلات.
إصلاح الأخطاء
- إصلاح المشكلة التي تؤدي إلى تحويل النقرات إلى عمليات سحب عند تحريك الماوس بشكل طفيف (Ie9106)
الإصدار 1.2.0-beta01
9 أبريل 2025
تم طرح androidx.recyclerview:recyclerview-selection:1.2.0-beta01. يتضمّن الإصدار 1.2.0-beta01 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- واجهات برمجة التطبيقات المتوقّفة نهائيًا
ViewCompat.LAYOUT_DIRECTION_(I51710، b/317055535)
إصلاح الأخطاء
- تستخدم هذه المكتبة الآن تعليقات توضيحية بشأن القيم الخالية من JSpecify، وهي تعليقات توضيحية خاصة باستخدام النوع. على مطوّري Kotlin استخدام وسيطة المترجم البرمجي التالية لفرض الاستخدام الصحيح:
-Xjspecify-annotations=strict(هذه هي القيمة التلقائية بدءًا من الإصدار 2.1.0 من مترجم Kotlin البرمجي). (I03b80، b/326456246)
الإصدار 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 هذه التعديلات.
إصلاح الأخطاء
- تعرض
ViewHolders داخل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نهائيًا واستبداله بطريقتَين جديدتَين:- تعرض الدالة getBindingAdapterPosition الموضع النسبي للأداة التي ربطت هذا العنصر.
- تعرض الدالة getAbsoluteAdapterPosition الموضع النسبي إلى 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 هذه التعديلات.
الميزات الجديدة
- تمت إضافة إمكانية إضافة عدة RecyclerListener. (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)
المساهمات الخارجية
- نشكر Kolin Krewinkel بالنيابة عن 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تتيح للمحوّل التحكّم في وقت استعادة حالة التنسيق.على سبيل المثال، يمكنك الاتصال بما يلي:
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 متعلقة بالرسم من اليمين إلى اليسار ودقة اللمس (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 تتسبّب في تعطُّل ItemDelegate في RecyclerView.
- يمكن إلغاء
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.
- تم إصلاح مشكلة عدم استخدام 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 باعتراض اللمس عند التمرير ما يؤدي إلى تمرير 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قابلة للرسم (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. يمكنك الاطّلاع على التعديلات في هذا الإصدار هنا.
إصلاح الأخطاء
- لم يكن بإمكان OnItemTouchListener في RecyclerView اعتراض 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).
- يستخدم معلومات النطاق لتقدير أبعاد شريط التمرير لعنصر
إصلاح الأخطاء
- تسهيل الاستخدام: حدث خطأ عند إعادة استخدام ViewHolder ثم إعادة ربطه، ولم يتم ربط 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)
إصلاح الأخطاء
- إصلاح الخطأ في 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. ستتم إزالة هذه الطرق في إصدار مستقبلي.
الإصدار 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-Selection
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 هذه التعديلات.
تحسينات عامة على الثبات تتعلّق بعمليات التحقّق الدفاعية وإدارة الحالة الداخلية
إصلاح الأخطاء
- تحسين إدارة حالة المكتبة وتفسير أحداث CANCEL، ما يؤدي إلى تحسينات في الثبات
تغييرات واجهة برمجة التطبيقات
- تمت إضافة مَعلمة نوع مفتاح التحديد إلى الفئات والطُرق التي لم تكن متوفّرة فيها.
- الطُرق المتوقّف عن استخدامها نهائيًا:
- SelectionTracker.Builder#withPointerTooltype
- SelectionTracker.Builder#withGestureTooltype
- كانت هذه الطرق متوفّرة بهدف السماح للمطوّرين بربط سلوكيات المؤشر أو الإيماءات بأنواع أدوات أخرى غير الأنواع التلقائية*. كانت النية حسنة، ولكن عند استخدامها بشكل أكبر، اتّضح أنّ توقّعات المستخدمين بشأن سلوك الإدخال تختلف كثيرًا حسب نوع الأداة. بالإضافة إلى ذلك، تعتبر الأقلام الإلكترونية "غير النشطة" من نوع FINGER وفقًا لنظام الإدخال في Android.
- أنواع الأدوات التلقائية هي FINGER للإيماءات وMOUSE للمؤشر.