Ringkasan library paging Bagian dari Android Jetpack.
Library Paging membantu Anda memuat dan menampilkan halaman data dari set data yang lebih besar dari penyimpanan lokal atau melalui jaringan. Pendekatan ini memungkinkan aplikasi Anda menggunakan bandwidth jaringan dan resource sistem secara lebih efisien. Komponen library Paging didesain agar sesuai dengan arsitektur aplikasi Android yang direkomendasikan, terintegrasi rapi dengan komponen Jetpack lainnya, dan menyediakan dukungan kelas satu untuk Kotlin.
Manfaat menggunakan library Paging
Library Paging mencakup fitur berikut:
- Cache dalam memori untuk data Anda yang dibagi-bagi. Hal ini membantu memastikan bahwa aplikasi Anda menggunakan resource sistem secara efisien saat menangani data yang dibagi-bagi.
- Penghapusan duplikat permintaan bawaan, yang membantu memastikan aplikasi Anda menggunakan bandwidth jaringan dan resource sistem secara efisien.
- Adaptor
RecyclerView
yang dapat dikonfigurasi yang otomatis meminta data saat pengguna men-scroll ke akhir data yang dimuat. - Dukungan kelas satu untuk coroutine Kotlin dan flow, serta
LiveData
dan RxJava. - Dukungan bawaan untuk penanganan error, termasuk kemampuan refresh dan percobaan kembali.
Berikan masukan
Masukan Anda membantu meningkatkan kualitas Jetpack. Beri tahu kami jika Anda menemukan masalah baru atau mempunyai masukan untuk meningkatkan kualitas library ini. Periksa masalah yang sudah diketahui untuk library ini sebelum membuat laporan baru. Anda dapat memberikan suara untuk masalah yang sudah diketahui dengan mengklik tombol bintang.
Lihat dokumentasi Issue Tracker untuk mengetahui informasi selengkapnya tentang cara mengirimkan masukan.
Penyiapan
Untuk mengimpor komponen Paging ke dalam aplikasi Android, tambahkan
dependensi berikut ke file build.gradle
aplikasi Anda:
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") }
Arsitektur library
Komponen library Paging beroperasi di tiga lapisan aplikasi Anda:
- Lapisan repositori
- Lapisan
ViewModel
- Lapisan UI
Bagian ini menjelaskan komponen library Paging yang beroperasi di setiap lapisan dan cara kerjanya bersama untuk memuat dan menampilkan data yang dibagi-bagi.
Lapisan repositori
Komponen library Paging utama di lapisan repositori adalah
PagingSource
. Setiap
objek PagingSource
menentukan sumber data dan cara mengambil data dari
sumber tersebut. Objek PagingSource
dapat memuat data dari sumber tunggal
mana pun, termasuk sumber jaringan dan database lokal.
Komponen library Paging lain yang dapat Anda gunakan
adalah RemoteMediator
. Objek
RemoteMediator
menangani paging dari sumber data berlapis, seperti
sumber data jaringan dengan cache database lokal.
Lapisan ViewModel
Komponen Pager
menyediakan API
publik untuk membuat instance PagingData
yang terekspos dalam
aliran reaktif, berdasarkan objek PagingSource
dan objek
konfigurasi PagingConfig
.
Komponen yang menghubungkan lapisan ViewModel
ke UI adalah
PagingData
. Objek PagingData
adalah penampung untuk snapshot data yang telah dipaginasi. Objek ini akan meminta
objek PagingSource
dan
menyimpan hasilnya.
Lapisan UI
Komponen library Paging utama di lapisan UI adalah
PagingDataAdapter
, yaitu
adaptor RecyclerView
yang menangani data yang dipaginasi.
Atau, Anda dapat menggunakan komponen
AsyncPagingDataDiffer
yang disertakan untuk membuat adaptor kustom sendiri.
Referensi lainnya
Untuk mempelajari library Paging lebih lanjut, lihat referensi tambahan berikut:
Codelab
Contoh
Direkomendasikan untuk Anda
- Catatan: teks link ditampilkan saat JavaScript nonaktif
- Memuat dan menampilkan data yang dibagi-bagi
- Bermigrasi ke Paging 3
- Halaman dari jaringan dan database