Recyclerview

عرض مجموعات كبيرة من البيانات في واجهة المستخدم مع تقليل استخدام الذاكرة

يسرد هذا الجدول جميع العناصر في مجموعة androidx.recyclerview.

العناصر الإصدار المستقر إصدار مرشح الإصدار التجريبي الإصدار الأولي
Recyclerview 1.3.2 - - 1.4.0-alpha01
اختيار إعادة التدوير 1.1.0 - - 1.2.0-alpha01
تم إجراء آخر تعديل لهذه المكتبة في 18 تشرين الأول (أكتوبر) 2023.

تعريف التبعيات

لإضافة تبعية على 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. يمكنك الاطّلاع على مشاركة المدونة للحصول على مزيد من المعلومات.

استعادة الحالة الكسولة: يمكن الآن لمحوِّل 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 للمؤشر.