نمای کلی کتابخانه صفحه‌بندی بخشی از Android Jetpack .

کتابخانه Paging به شما کمک می کند صفحات داده را از یک مجموعه داده بزرگتر از حافظه محلی یا از طریق شبکه بارگیری و نمایش دهید. این رویکرد به برنامه شما اجازه می‌دهد از پهنای باند شبکه و منابع سیستم به طور موثرتری استفاده کند. اجزای کتابخانه Paging به گونه‌ای طراحی شده‌اند که با معماری برنامه‌های اندرویدی توصیه‌شده مطابقت داشته باشند، به‌طور تمیز با سایر مؤلفه‌های Jetpack ادغام شوند و پشتیبانی درجه یک Kotlin را ارائه دهند.

مزایای استفاده از کتابخانه Paging

کتابخانه Paging شامل ویژگی های زیر است:

  • کش در حافظه برای داده های صفحه شده شما. این کمک می کند تا اطمینان حاصل شود که برنامه شما در حین کار با داده های صفحه بندی شده به طور موثر از منابع سیستم استفاده می کند.
  • حذف درخواست داخلی، که به شما کمک می کند تا اطمینان حاصل کنید که برنامه شما از پهنای باند شبکه و منابع سیستم به طور موثر استفاده می کند.
  • آداپتورهای RecyclerView قابل تنظیم که به‌طور خودکار داده‌ها را هنگام حرکت کاربر به سمت انتهای داده‌های بارگذاری شده درخواست می‌کنند.
  • پشتیبانی درجه یک از کوروتین‌ها و جریان‌های Kotlin و همچنین LiveData و RxJava.
  • پشتیبانی داخلی برای مدیریت خطا، از جمله قابلیت‌های تازه کردن و امتحان مجدد.

بازخورد ارائه دهید

بازخورد شما به بهتر شدن Jetpack کمک می کند. اگر مسائل جدیدی کشف کردید یا ایده هایی برای بهبود این کتابخانه دارید، به ما اطلاع دهید. قبل از ایجاد کتابخانه جدید، مشکلات موجود برای این کتابخانه را بررسی کنید. با کلیک کردن روی دکمه ستاره می توانید رای خود را به یک موضوع موجود اضافه کنید.

یک شماره جدید ایجاد کنید

برای اطلاعات بیشتر درباره ارسال بازخورد به مستندات ردیاب مشکل مراجعه کنید.

راه اندازی

برای وارد کردن اجزای Paging به برنامه Android خود، وابستگی های زیر را به فایل build.gradle برنامه خود اضافه کنید:

Groovy

dependencies {
  def paging_version = "3.3.4"

  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.4"
}

Kotlin

dependencies {
  val paging_version = "3.3.4"

  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.4")
}

معماری کتابخانه

اجزای کتابخانه پیجینگ در سه لایه برنامه شما کار می کنند:

  • لایه مخزن
  • لایه ViewModel
  • لایه UI
تصویری که داده های صفحه بندی شده را نشان می دهد از اجزای PagingSource یا RemoteMediator در لایه مخزن به مولفه پیجر در لایه ViewModel جریان می یابد.     سپس مؤلفه Pager جریانی از PagingData را در معرض PagingDataAdapter در لایه UI قرار می دهد.
شکل 1. نمونه ای از اینکه چگونه کتابخانه Paging در معماری برنامه شما قرار می گیرد.

این بخش مؤلفه‌های کتابخانه صفحه‌بندی را که در هر لایه کار می‌کنند و نحوه کار آنها برای بارگذاری و نمایش داده‌های صفحه‌بندی شده با هم توضیح می‌دهد.

لایه مخزن

جزء اصلی کتابخانه Paging در لایه مخزن PagingSource است. هر شیء PagingSource یک منبع داده و نحوه بازیابی داده ها از آن منبع را تعریف می کند. یک شی PagingSource می تواند داده ها را از هر منبع واحدی، از جمله منابع شبکه و پایگاه های داده محلی، بارگیری کند.

یکی دیگر از مؤلفه‌های کتابخانه صفحه‌بندی که ممکن است از آن استفاده کنید RemoteMediator است. یک شی RemoteMediator صفحه‌بندی را از یک منبع داده لایه‌ای، مانند منبع داده شبکه با حافظه پنهان پایگاه داده محلی، کنترل می‌کند.

لایه ViewModel

مؤلفه Pager یک API عمومی برای ساختن نمونه‌هایی از PagingData که در جریان‌های واکنشی در معرض دید قرار می‌گیرند، بر اساس یک شی PagingSource و یک شی پیکربندی PagingConfig ارائه می‌کند.

مؤلفه ای که لایه ViewModel را به رابط کاربری متصل می کند PagingData است. یک شیء PagingData محفظه ای برای یک عکس فوری از داده های صفحه بندی شده است. یک شی PagingSource را پرس و جو می کند و نتیجه را ذخیره می کند.

لایه رابط کاربری

مؤلفه اصلی کتابخانه Paging در لایه UI PagingDataAdapter است، یک آداپتور RecyclerView که داده های صفحه بندی شده را مدیریت می کند.

از طرف دیگر، می‌توانید از مؤلفه AsyncPagingDataDiffer برای ساخت آداپتور سفارشی خود استفاده کنید.

منابع اضافی

برای کسب اطلاعات بیشتر در مورد کتابخانه Paging، به منابع اضافی زیر مراجعه کنید:

Codelabs

نمونه ها

{% کلمه به کلمه %} {% آخر کلمه %} {% کلمه به کلمه %} {% آخر کلمه %}