نمای کلی کتابخانه صفحهبندی بخشی از Android Jetpack .
کتابخانه Paging به شما کمک می کند صفحات داده را از یک مجموعه داده بزرگتر از حافظه محلی یا از طریق شبکه بارگیری و نمایش دهید. این رویکرد به برنامه شما اجازه میدهد از پهنای باند شبکه و منابع سیستم به طور موثرتری استفاده کند. اجزای کتابخانه Paging به گونهای طراحی شدهاند که با معماری برنامههای اندرویدی توصیهشده مطابقت داشته باشند، بهطور تمیز با سایر مؤلفههای Jetpack ادغام شوند و پشتیبانی درجه یک Kotlin را ارائه دهند.
مزایای استفاده از کتابخانه Paging
کتابخانه Paging شامل ویژگی های زیر است:
- کش در حافظه برای داده های صفحه شده شما. این کمک می کند تا اطمینان حاصل شود که برنامه شما در حین کار با داده های صفحه بندی شده به طور موثر از منابع سیستم استفاده می کند.
- حذف درخواست داخلی، که به شما کمک می کند تا اطمینان حاصل کنید که برنامه شما از پهنای باند شبکه و منابع سیستم به طور موثر استفاده می کند.
- آداپتورهای
RecyclerView
قابل تنظیم که بهطور خودکار دادهها را هنگام حرکت کاربر به سمت انتهای دادههای بارگذاری شده درخواست میکنند. - پشتیبانی درجه یک از کوروتینها و جریانهای Kotlin و همچنین
LiveData
و RxJava. - پشتیبانی داخلی برای مدیریت خطا، از جمله قابلیتهای تازه کردن و امتحان مجدد.
بازخورد ارائه دهید
بازخورد شما به بهتر شدن Jetpack کمک می کند. اگر مسائل جدیدی کشف کردید یا ایده هایی برای بهبود این کتابخانه دارید، به ما اطلاع دهید. قبل از ایجاد کتابخانه جدید، مشکلات موجود برای این کتابخانه را بررسی کنید. با کلیک کردن روی دکمه ستاره می توانید رای خود را به یک موضوع موجود اضافه کنید.
برای اطلاعات بیشتر درباره ارسال بازخورد به مستندات ردیاب مشکل مراجعه کنید.
راه اندازی
برای وارد کردن اجزای Paging به برنامه Android خود، وابستگی های زیر را به فایل build.gradle
برنامه خود اضافه کنید:
شیار
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" }
کاتلین
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") }
معماری کتابخانه
اجزای کتابخانه پیجینگ در سه لایه برنامه شما کار می کنند:
- لایه مخزن
- لایه
ViewModel
- لایه UI
این بخش مؤلفههای کتابخانه صفحهبندی را که در هر لایه کار میکنند و نحوه کار آنها برای بارگذاری و نمایش دادههای صفحهبندی شده با هم توضیح میدهد.
لایه مخزن
جزء اصلی کتابخانه Paging در لایه مخزن PagingSource
است. هر شیء PagingSource
یک منبع داده و نحوه بازیابی داده ها از آن منبع را تعریف می کند. یک شی PagingSource
می تواند داده ها را از هر منبع واحدی، از جمله منابع شبکه و پایگاه های داده محلی، بارگیری کند.
یکی دیگر از مؤلفههای کتابخانه صفحهبندی که ممکن است از آن استفاده کنید RemoteMediator
است. یک شی RemoteMediator
صفحهبندی را از یک منبع داده لایهای، مانند منبع داده شبکه با حافظه پنهان پایگاه داده محلی، کنترل میکند.
لایه ViewModel
مؤلفه Pager
یک API عمومی برای ساختن نمونههایی از PagingData
که در جریانهای واکنشی در معرض دید قرار میگیرند، بر اساس یک شی PagingSource
و یک شی پیکربندی PagingConfig
ارائه میکند.
مؤلفه ای که لایه ViewModel
را به رابط کاربری متصل می کند PagingData
است. یک شیء PagingData
محفظه ای برای یک عکس فوری از داده های صفحه بندی شده است. یک شی PagingSource
را پرس و جو می کند و نتیجه را ذخیره می کند.
لایه رابط کاربری
مؤلفه اصلی کتابخانه Paging در لایه UI PagingDataAdapter
است، یک آداپتور RecyclerView
که داده های صفحه بندی شده را مدیریت می کند.
از طرف دیگر، میتوانید از مؤلفه AsyncPagingDataDiffer
برای ساخت آداپتور سفارشی خود استفاده کنید.
منابع اضافی
برای کسب اطلاعات بیشتر در مورد کتابخانه Paging، به منابع اضافی زیر مراجعه کنید:
Codelabs
نمونه ها
{% کلمه به کلمه %}برای شما توصیه می شود
- توجه: وقتی جاوا اسکریپت خاموش است، متن پیوند نمایش داده می شود
- بارگیری و نمایش داده های صفحه بندی شده
- مهاجرت به صفحه 3
- صفحه از شبکه و پایگاه داده