عرض Recyclerview

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

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

العناصر الإصدار المستقر إصدار المرشح الإصدار التجريبي إصدار أولي
recyclerview 1.3.2 - - 1.4.0-alpha01
recyclerview-selection 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 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. ويمكنك الاطّلاع على مشاركة المدونة للحصول على مزيد من المعلومات.

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