عرض لإعادة التدوير
يعرض هذا الجدول كل العناصر في مجموعة androidx.recyclerview
.
العناصر | الإصدار المستقر | سحب المرشح | الإصدار التجريبي | إصدار أولي |
---|---|---|---|---|
إعادة التدوير | 1.3.2 | - | - | 1.4.0-alpha02 |
تحديد طريقة إعادة التدوير | 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-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
نهائيًا واستبداله بطريقتَين جديدتَين:- تعرض getBindingAdapterPosition الموضع بالنسبة إلى المهايئ الذي يربط هذا العنصر.
- تعرض getAbsoluteerPosition الموضع بالنسبة إلى 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: محوّل 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 للعرض الفرعي عندما كان يتم استدعاء ميزة 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 للإيماءة والماوس للمؤشر.