Sayfa kitaplığına genel bakış Android Jetpack'in bir parçasıdır.
Sayfalama kitaplığı, yerel depolamada veya ağ üzerinden daha büyük bir veri kümesindeki veri sayfalarını yüklemenize ve görüntülemenize yardımcı olur. Bu yaklaşım, uygulamanızın hem ağ bant genişliğini hem de sistem kaynaklarını daha verimli kullanmasını sağlar. Paging kitaplığının bileşenleri, önerilen Android uygulama mimarisine uyacak, diğer Jetpack bileşenleriyle sorunsuz bir şekilde entegre olacak ve birinci sınıf Kotlin desteği sunacak şekilde tasarlanmıştır.
Sayfalama kitaplığını kullanmanın avantajları
Sayfalama kitaplığı aşağıdaki özellikleri içerir:
- Sayfalandırılmış verileriniz için bellek içi önbelleğe alma. Bu, uygulamanızın sayfalık verilerle çalışırken sistem kaynaklarını verimli bir şekilde kullanmasını sağlar.
- Uygulamanızın ağ bant genişliğini ve sistem kaynaklarını verimli bir şekilde kullanmasını sağlayan yerleşik istek tekilleştirme.
- Kullanıcı, yüklenen verilerin sonuna doğru ilerlerken otomatik olarak veri isteyen yapılandırılabilir
RecyclerView
bağdaştırıcıları. - Kotlin eş yordamları ve akışlarının yanı sıra
LiveData
ve RxJava için birinci sınıf destek. - Yenileme ve yeniden deneme özellikleri de dahil olmak üzere hata işleme için yerleşik destek.
Geri bildirim gönderme
Geri bildirimleriniz Jetpack'i iyileştirmemize yardımcı olur. Yeni sorunlar keşfederseniz veya bu kitaplığın geliştirilmesiyle ilgili fikirleriniz olursa bize bildirin. Yeni bir kitaplık oluşturmadan önce bu kitaplıktaki mevcut sorunları kontrol edin. Yıldız düğmesini tıklayarak mevcut bir soruna oyunuzu ekleyebilirsiniz.
Geri bildirim gönderme hakkında daha fazla bilgi için Sorun İzleyici belgelerine bakın.
Kurulum
Sayfalama bileşenlerini Android uygulamanıza aktarmak için aşağıdaki bağımlılıkları uygulamanızın build.gradle
dosyasına ekleyin:
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") }
Kütüphane mimarisi
Sayfalama kitaplığının bileşenleri uygulamanızın üç katmanında çalışır:
- Depo katmanı
ViewModel
katmanı- Kullanıcı arayüzü katmanı
Bu bölümde, her bir katmanda çalışan Sayfalandırma kitaplığı bileşenleri ve bunların sayfa bölümü içeren verileri yüklemek ve görüntülemek için birlikte nasıl çalıştıkları açıklanmaktadır.
Kod deposu katmanı
Depo katmanındaki birincil Sayfalama kitaplığı bileşeni PagingSource
'tir. Her PagingSource
nesnesi, bir veri kaynağını ve bu kaynaktan verilerin nasıl alınacağını tanımlar. PagingSource
nesnesi, ağ kaynakları ve yerel veritabanları dahil olmak üzere herhangi bir tek kaynaktan veri yükleyebilir.
Kullanabileceğiniz diğer bir Sayfalama Kitaplığı bileşeni
RemoteMediator
'tir. Bir RemoteMediator
nesnesi, yerel veritabanı önbelleğine sahip bir ağ veri kaynağı gibi katmanlı bir veri kaynağından sayfa işlemlerini işler.
ViewModel katmanı
Pager
bileşeni, bir PagingSource
nesnesine ve bir PagingConfig
yapılandırma nesnesine dayalı olarak reaktif akışlarda açığa çıkan PagingData
örnekleri oluşturmak için herkese açık bir API sağlar.
ViewModel
katmanını kullanıcı arayüzüne bağlayan bileşen PagingData
'dir. PagingData
nesnesi, sayfalandırılmış verilerin anlık görüntüsünün bir kapsayıcısıdır. Bir PagingSource
nesnesini sorgular ve sonucu depolar.
kullanıcı arayüzü katmanı
Kullanıcı arayüzü katmanındaki birincil Sayfalandırma kitaplığı bileşeni, sayfalara ayrılmış verileri işleyen bir RecyclerView
adaptörü olan PagingDataAdapter
'tir.
Alternatif olarak, kendi özel bağdaştırıcınızı oluşturmak için birlikte verilen AsyncPagingDataDiffer
bileşenini de kullanabilirsiniz.
Ek kaynaklar
Sayfalama kitaplığı hakkında daha fazla bilgi edinmek için aşağıdaki ek kaynaklara bakın:
Codelab uygulamaları
Sana Özel
Sizin için önerilenler
- Not: Bağlantı metni JavaScript kapalıyken gösterilir
- Sayfalı verileri yükleme ve görüntüleme
- 3. Sayfaya Geçiş
- Ağ ve veritabanı sayfası