Recyclerview
يسرد هذا الجدول جميع العناصر في مجموعة androidx.recyclerview
.
العناصر | الإصدار المستقر | إصدار مرشح | الإصدار التجريبي | الإصدار الأولي |
---|---|---|---|---|
Recyclerview | 1.3.2 | - | - | 1.4.0-alpha01 |
اختيار إعادة التدوير | 1.1.0 | - | - | 1.2.0-alpha01 |
تعريف التبعيات
لإضافة تبعية على RecyclerView، يجب إضافة مستودع Google Maven إلى مشروعك. يمكنك الاطّلاع على مستودع Maven الذي يضم أدوات Google للحصول على مزيد من المعلومات.
أضف التبعيات للعناصر التي تحتاجها في ملف build.gradle
لتطبيقك أو وحدتك:
رائع
dependencies { implementation "androidx.recyclerview:recyclerview:1.3.2" // For control over item selection of both touch and mouse driven selection implementation "androidx.recyclerview:recyclerview-selection:1.1.0" }
Kotlin
dependencies { implementation("androidx.recyclerview:recyclerview:1.3.2") // For control over item selection of both touch and mouse driven selection implementation("androidx.recyclerview:recyclerview-selection:1.1.0") }
ولمزيدٍ من المعلومات عن التبعيات، يُرجى الاطّلاع على مقالة إضافة تبعيات الإصدار.
ملاحظات
تساعدنا ملاحظاتك في تحسين Jetpack. يُرجى إخبارنا إذا اكتشفت مشاكل جديدة أو كانت لديك أفكار لتحسين هذه المكتبة. يُرجى الاطّلاع على المشاكل الحالية في هذه المكتبة قبل إنشاء مشكلة جديدة. يمكنك إضافة تصويتك إلى مشكلة حالية من خلال النقر على زر النجمة.
راجع مستندات أداة تتبُّع المشاكل للحصول على مزيد من المعلومات.
الإصدار 1.4
الإصدار 1.4.0-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 من الإصدار التجريبي 01 لأنّها تمثّل تغييرًا كبيرًا غير متوافق مع المصدر لمستخدمي لغة 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
الموضّحة في إرشادات إمكانية التشغيل التفاعلي السابقة، يجب إزالتها لأنّها لم تعُد تحسّنًا عن الحالة التلقائية.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة تعليقات توضيحية بشأن عدد من الطرق والمعلَمات من أجل تحسين تحذيرات الوبر لدى مستخدمي Java وإمكانية التشغيل التفاعلي لمستخدمي Kotlin. وقد يكون هذا التغيير يكسر المصدر لدى بعض مستخدمي لغة Kotlin، كما قد ينتج عنه تحذيرات أو أخطاء إضافية من وبر الوبر عند بعض مستخدمي 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
نهائيًا واستبداله بطريقتين جديدتين:- تعرض getSelectingAdapterPosition الموضع المرتبط بالمحوّل الذي يربط هذا العنصر.
- تعرض 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
، ما يتيح للمحوِّل التحكُّم في وقت استعادة حالة التنسيق.على سبيل المثال، يمكنك الاتصال بما يلي:
myAdapter.setStateRestorationStrategy(StateRestorationStrategy.WHEN_NOT_EMPTY);
لجعل RecyclerView تنتظر حتى تصبح Adapter فارغًا قبل استعادة موضع التمرير.
لن تتم تعبئة معلومات المجموعة ومجموعة معلومات المجموعة تلقائيًا بعد الآن.
إذا أردت أن تستمر خدمات تسهيل الاستخدام (Talkback على سبيل المثال) في الإشارة إلى العدد وفهرس العناصر للمستخدم، ستحتاج إلى ملء مجموعة مَعْلُومَاتِ الِاجْتِمَاعْ وَمِيزَةِ الْجُمْهُورْ بِمُجَرَّدْ أَنْ أَسْمَعَ طَلَبًا بِذَلِكْ.
لم تعُد تتم تعبئة هذه العناصر في إطار العمل لأنّ إطار العمل لا يمكنه تحديد عدد العناصر التي لاحظها المستخدم (مثل الفواصل أو العناوين أو عناصر RecyclerView التي تمثّل العديد من العناصر التي تم رصدها).
إصلاح الأخطاء
- تتجنب أداة RecyclerView الآن التثبيت في المشاهدات خارج إطار العرض عندما يتغير حجم إطار العرض.
- تم إصلاح خطأ في DiffUnel حيث قد يتم احتساب الفرق بشكل خاطئ عند تكرار عنصر أصلي في القائمة الأولى عدة مرات في القائمة الثانية. (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/1130)728. - تم إيقاف السمة
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 Itemامتثال.
- يمكن تجاهل
LinearLayoutManager.calculateExtraLayoutSpace(RecyclerView.State, int[])
لتخصيص مساحة التنسيق الإضافية التي يجب إضافتها إلى أي من جانبي RecyclerView المرتبط. (aosp/931259) - تمت إضافة حمل زائد جديد لـens 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، مطروحًا منه المساحة المتروكة، على الرغم من قيمةClipToPadding. (aosp/1130728)
إصلاح الأخطاء
- تم إصلاح المشكلة المتمثلة في إنشاء RecyclerView من إنشاء عُقد إمكانية وصول مكررة للعناصر الثانوية في RecyclerView. (aosp/1130618)
- تم إصلاح مشكلة عدم عمل التدرجات الهرمية الافتراضية لإمكانية الوصول في RecyclerViews.
- تم إصلاح المشكلة المتمثلة في عدم استخدام Itemتفويضs مخصّص.
الإصدار 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
. يمكن الاطّلاع هنا على الالتزامات المضمَّنة في هذا الإصدار.
الميزات الجديدة
- تمت إضافة حمل زائد جديد لـens 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 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)
" للحصول على مزيد من المعلومات.
- يتم استخدام معلومات الامتداد لتقدير أبعاد شريط التمرير لـ
إصلاح الأخطاء
- إمكانية الوصول: حدث خطأ حيث بعد إعادة تدوير ViewHolder ثم ارتدادها مرة أخرى، لم يتم ربط العنصر Itemعلَّق المرتبط بـ
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-sselect 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)
- تم إصلاح المشكلة المتمثلة في تنشيط عناصر RecyclerView التي يتم تشغيلها عند النقر على الأحداث عند استخدام خيار التحديد النشط (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)
الإصدار 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#withActivityTooltype
- تم استخدام هذه الطرق بهدف ربط سلوكيات المؤشر أو الإيماءات بأنواع أدوات أخرى غير الإعدادات التلقائية*. كان القصد جيدًا، ولكن عند مواصلة الاستخدام، أصبح من الواضح أن توقعات المستخدم بشأن سلوك الإدخال تكون محددة جدًا لنوع الأداة. علاوةً على ذلك، فإن النمط "السلبي" هو نوع أداة FINGER بالنسبة إلى نظام إدخال Android.
- أنواع الأدوات التلقائية هي FINGER للإيماءة وMOUSE للمؤشر.