نظرة عامة على مكتبة Paging جزء من Android Jetpack.
تساعدك مكتبة Paging في تحميل صفحات البيانات وعرضها من مجموعة بيانات أكبر من مساحة التخزين المحلية أو عبر شبكة. يتيح هذا النهج لتطبيقك استخدام كل من معدل نقل البيانات في الشبكة وموارد النظام بكفاءة أكبر. تم تصميم مكوّنات مكتبة Paging لكي تتوافق مع بنية تطبيقات Android المُقترَحة، وأن تتكامل بسلاسة مع مكوّنات Jetpack الأخرى، وأن توفّر دعمًا من الدرجة الأولى لـ Kotlin.
مزايا استخدام مكتبة الفهرسة
تتضمّن مكتبة "التنقّل في الصفحة" الميزات التالية:
- ذاكرة التخزين المؤقت في الذاكرة لبياناتك المفصّلة يساعد ذلك في ضمان استخدام تطبيقك لموارد النظام بكفاءة أثناء العمل مع البيانات المفصّلة.
- ميزة "إزالة تكرار الطلبات" المضمّنة، والتي تساعد في ضمان استخدام تطبيقك لسعة نقل بيانات الشبكة وموارد النظام بكفاءة
- محدّدات ومقاييس
RecyclerView
قابلة للضبط تطلب البيانات تلقائيًا عندما ينتقل المستخدم إلى نهاية البيانات المحمَّلة. - إتاحة ميزات ممتازة لعمليات التشغيل المتعدّد المتزامن ومسارات Kotlin، بالإضافة إلى
LiveData
وRxJava - إتاحة معالجة الأخطاء بشكل مضمّن، بما في ذلك إمكانات إعادة التحميل وإعادة المحاولة
تقديم تعليقات
تساعدنا ملاحظاتك في تحسين Jetpack. يُرجى إعلامنا إذا واجهت مشاكل جديدة أو كانت لديك أفكار لتحسين هذه المكتبة. تحقَّق من المشاكل الحالية لهذه المكتبة قبل إنشاء مكتبة جديدة. يمكنك إضافة صوتك إلى مشكلة حالية من خلال النقر على زرّ النجمة.
يمكنك الاطّلاع على مستندات "أداة تتبُّع المشاكل" للحصول على مزيد من المعلومات عن إرسال الملاحظات.
ضبط إعدادات الجهاز
لاستيراد مكوّنات Paging إلى تطبيق Android، أضِف التبعيات التالية
إلى ملف build.gradle
في تطبيقك:
Groovy
dependencies { def paging_version = "3.3.2" implementation "androidx.paging:paging-runtime:$paging_version" // alternatively - without Android dependencies for tests testImplementation "androidx.paging:paging-common:$paging_version" // optional - RxJava2 support implementation "androidx.paging:paging-rxjava2:$paging_version" // optional - RxJava3 support implementation "androidx.paging:paging-rxjava3:$paging_version" // optional - Guava ListenableFuture support implementation "androidx.paging:paging-guava:$paging_version" // optional - Jetpack Compose integration implementation "androidx.paging:paging-compose:3.3.2" }
Kotlin
dependencies { val paging_version = "3.3.2" implementation("androidx.paging:paging-runtime:$paging_version") // alternatively - without Android dependencies for tests testImplementation("androidx.paging:paging-common:$paging_version") // optional - RxJava2 support implementation("androidx.paging:paging-rxjava2:$paging_version") // optional - RxJava3 support implementation("androidx.paging:paging-rxjava3:$paging_version") // optional - Guava ListenableFuture support implementation("androidx.paging:paging-guava:$paging_version") // optional - Jetpack Compose integration implementation("androidx.paging:paging-compose:3.3.2") }
بنية المكتبة
تعمل مكوّنات مكتبة Paging في ثلاث طبقات من تطبيقك:
- طبقة المستودع
- طبقة
ViewModel
- طبقة واجهة المستخدم
يوضِّح هذا القسم مكوّنات مكتبة الفهرسة التي تعمل في كل طبقة وكيفية عملها معًا لتحميل البيانات المفصّلة وعرضها.
طبقة المستودع
المكوّن الأساسي لـ "مكتبة الفهرسة" في طبقة المستودع هو
PagingSource
. يحدِّد كل عنصر
PagingSource
مصدر البيانات وكيفية استرداد البيانات من
هذا المصدر. يمكن لعنصر PagingSource
تحميل البيانات من أي مصدر واحد،
بما في ذلك مصادر الشبكة وقواعد البيانات المحلية.
يمكنك أيضًا استخدام المكوّن التالي من مكتبة Paging:
RemoteMediator
. يعالج عنصر
RemoteMediator
تقسيم الصفحة من مصدر بيانات متعدّد الطبقات، مثل
مصدر بيانات على الشبكة مع ذاكرة تخزين مؤقت لقاعدة بيانات محلية.
طبقة ViewModel
يقدّم المكوّن Pager
واجهة برمجة تطبيقات عامة لإنشاء نُسخ من PagingData
يتم عرضها في
البثّات التفاعلية، استنادًا إلى عنصر PagingSource
وأحد عناصر الإعداد
PagingConfig
.
المكوّن الذي يربط طبقة ViewModel
بواجهة المستخدم هو
PagingData
. PagingData
العنصر هو حاوية لنبذة عن البيانات المفصّلة. يُجري طلب بحث عن عنصر
PagingSource
ويحفظ النتيجة.
طبقة واجهة المستخدم
عنصر مكتبة الفهرسة الأساسية في طبقة واجهة المستخدم هو
PagingDataAdapter
، وهو محوِّل
RecyclerView
يعالج البيانات المفصَّلة.
بدلاً من ذلك، يمكنك استخدام العنصر المُرفَق
AsyncPagingDataDiffer
لإنشاء محوِّل مخصّص.
مصادر إضافية
للاطّلاع على مزيد من المعلومات عن مكتبة Paging، اطّلِع على المراجع الإضافية التالية:
الدروس التطبيقية حول الترميز
- دورة تدريبية حول أساسيات تصفّح البيانات في Android
- الدليل التعليمي المتقدّم لميزة "التنقّل في التطبيقات" في Android
أفلام مُقترَحة لك
- ملاحظة: يتم عرض نص الرابط عندما تكون لغة JavaScript غير مفعّلة.
- تحميل البيانات المفصّلة وعرضها
- الانتقال إلى Paging 3
- الصفحة من الشبكة وقاعدة البيانات