Recyclerview
يسرد هذا الجدول جميع العناصر في مجموعة androidx.recyclerview
.
العناصر | الإصدار الثابت | إصدار مرشح | الإصدار التجريبي | الإصدار التجريبي الأول |
---|---|---|---|---|
recyclerview | 1.4.0 | - | - | - |
recyclerview-selection | 1.1.0 | - | - | 1.2.0-alpha01 |
الإعلان عن التبعيات
لإضافة عنصر تابع إلى 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 نفسه. يمكنك الاطّلاع على مشاركة المدونة لمعرفة مزيد من المعلومات.
- وكجزء من هذا التغيير، تم إيقاف
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 على هذه المراجعات.
الميزات الجديدة
- تمت إضافة إمكانية إضافة عدة 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.
- أنواع الأدوات التلقائية هي الإصبع للإيماءة والماوس للمؤشر.