عرض Recyclerview
يسرد هذا الجدول جميع العناصر في مجموعة androidx.recyclerview
.
العناصر | الإصدار المستقر | إصدار المرشح | الإصدار التجريبي | إصدار أولي |
---|---|---|---|---|
recyclerview | 1.3.2 | - | - | 1.4.0-alpha01 |
recyclerview-selection | 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
API. (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
نهائيًا واستبداله بطريقتَين جديدتَين:- تعرض الدالة 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 على هذه الالتزامات.
الميزات الجديدة
- تمت إضافة إمكانية إضافة العديد من أدوات Recycler Listener. (I70ad8، b/145767095)
تغييرات واجهة برمجة التطبيقات
- تم إيقاف RecyclerView.setRecycler Listener(Recycler Listener) نهائيًا. (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 تنتظر حتى تصبح المحوّل فارغًا قبل استعادة موضع التمرير.
لن تتم تعبئة CollectionInfo وCollectionItemInfo تلقائيًا بعد الآن.
إذا أردت أن تستمر خدمات تسهيل الاستخدام (Talkback على سبيل المثال) في الإشارة إلى العدد وفهرس العناصر للمستخدم، ستحتاج إلى ملء CInfo و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/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 Itemplaceholder.
- يمكن إلغاء
LinearLayoutManager.calculateExtraLayoutSpace(RecyclerView.State, int[])
لتخصيص مقدار مساحة التنسيق الإضافية التي يجب إضافتها إلى أي من جانبي RecyclerView المرتبط. (aosp/931259) - تمت إضافة حمل زائد جديد لـensmoothBy:
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، بدون المساحة المتروكة، على الرغم من قيمة trimToPadding. (aosp/1130728)
إصلاح الأخطاء
- تم إصلاح المشكلة المتمثلة في إنشاء RecyclerView من عقد إمكانية وصول مكررة للعناصر الثانوية في RecyclerView. (aosp/1130618)
- تم إصلاح المشكلة المتمثلة في عدم عمل التدرجات الهرمية لإمكانية الوصول الافتراضية في RecyclerViews.
- إصلاح المشكلة المتمثِّلة في عدم استخدام Itemدورات مخصصة
الإصدار 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
. يمكن العثور على الالتزامات المضمّنة في هذا الإصدار هنا.
الميزات الجديدة
- تمت إضافة حمل زائد جديد لـensmoothBy:
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 OnItemTouch Listener من الاعتراض على الاعتراض في السابق على ACTION_UP، ما يمنع OnItemTouch Listener من حظر الرموز الأخرى من الاستجابة لـ 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)
للحصول على مزيد من المعلومات.
- يتم استخدام معلومات الامتداد لتقدير أبعاد شريط التمرير لـ
إصلاح الأخطاء
- إمكانية الوصول: حدث خطأ، فبعد إعادة تدوير 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-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 على هذه الالتزامات.
إصلاح الأخطاء
شكرًا "ستيفان كيسلر" على اختبار الإصلاحات والحصول على ملاحظات المستخدمين.
- تم إصلاح المشكلة التي كانت تتسبب في استدعاء عرض OnClick Listeners الثانوي بشكل غير متوقع أثناء التحديد النشط.
- معالج الماوس (اختيار النطاق) > تعامل مع عمليات التمرير غير المتوقعة بسلاسة. (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)
RecyclerView-Selection الإصدار 1.1.0-beta01
4 كانون الأول (ديسمبر) 2019
تم إطلاق "androidx.recyclerview:recyclerview-selection:1.1.0-beta01
". يحتوي الإصدار 1.1.0-beta01 على هذه الالتزامات.
تحسينات عامة في الاستقرار ذات صلة بعمليات الفحص الدفاعية وإدارة الحالة الداخلية
إصلاح الأخطاء
- إدارة مُحسَّنة لحالة المكتبة وتفسير أحداث "إلغاء"، ما يؤدي إلى تحسينات في الثبات.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة مَعلمة نوع مفتاح الاختيار إلى الفئات والطرق التي لا تتوفّر فيها.
- في ما يلي بعض الطرق التي تم إيقافها نهائيًا:
- SelectionTracker.Builder#withPointerTooltype
- SelectionTracker.Builder#withGestureTooltype
- تم وضع هذه الطرق بهدف أن يربط المطوّرون سلوكيات المؤشر أو الإيماءات بأنواع أدوات أخرى غير الإعدادات التلقائية*. كان القصد من ذلك جيدًا، ولكن بعد الاستخدام الإضافي، أصبح من الواضح أنّ توقعات المستخدم بشأن سلوك الإدخال كانت محدّدة بنوع أداة جدًا. أيضًا، الأسلوب "السلبي" هو نوع أداة FINGER بقدر ما يتعلق بنظام الإدخال في Android.
- أنواع الأدوات التلقائية هي FINGER للخيار "إيماءة" وMOUSE للمؤشر.