Sayfalama kitaplığına genel bakış Android Jetpack'in bir parçasıdır.
Sayfalama kitaplığı, daha büyük bir veri kümesinden yerel depolama alanından veya ağ üzerinden veri sayfaları 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ına olanak tanır. Sayfalama kitaplığının bileşenleri, önerilen Android uygulama mimarisine uygun, diğer Jetpack bileşenleriyle sorunsuz bir şekilde entegre olan ve birinci sınıf Kotlin desteği sunan ş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 sayede uygulamanız, sayfalı verilerle çalışırken sistem kaynaklarını verimli bir şekilde kullanır.
- 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üklü verilerin sonuna doğru ilerledikçe otomatik olarak veri isteyen yapılandırılabilir
RecyclerView
adaptörleri. - Kotlin coroutine'leri ve akışları,
LiveData
ve RxJava için birinci sınıf destek. - Yenileme ve yeniden deneme özellikleri dahil olmak üzere hata işleme için yerleşik destek.
Geri bildirim gönder
Geri bildiriminiz Jetpack'in iyileştirilmesine yardımcı olur. Yeni sorunlar keşfederseniz veya bu kitaplığı iyileştirmek için fikirleriniz varsa lütfen bize bildirin. Yeni bir kitaplık oluşturmadan önce bu kitaplığın mevcut sorunlarını kontrol edin. Yıldız düğmesini tıklayarak mevcut bir soruna oy verebilirsiniz.
Geri bildirim gönderme hakkında daha fazla bilgi için Sorun İzleyici belgelerine bakın.
Kurulum
Android uygulamanıza Sayfalandırma bileşenlerini aktarmak için uygulamanızın build.gradle
dosyasına aşağıdaki bağımlılıkları ekleyin:
Eski
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") }
Kitaplık 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 katmanda çalışan sayfalama kitaplığı bileşenleri ve sayfalı verileri yükleyip görüntülemek için birlikte nasıl çalıştıkları açıklanmaktadır.
Depo katmanı
Depo katmanındaki birincil Sayfalama kitaplığı bileşeni PagingSource
. 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 kaynaktan veri yükleyebilir.
Kullanabileceğiniz başka bir Sayfalama kitaplığı bileşeni RemoteMediator
'dir. RemoteMediator
nesnesi, yerel veritabanı önbelleği içeren bir ağ veri kaynağı gibi katmanlı bir veri kaynağından sayfalama işlemini yönetir.
ViewModel katmanı
Pager
bileşeni, PagingSource
nesnesine ve PagingConfig
yapılandırma nesnesine dayalı olarak reaktif akışlarda sunulan 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, sayfaya bölünmüş verilerin anlık görüntüsünü içeren bir kapsayıcıdır. Bir PagingSource
nesnesini sorgulayarak sonucu depolar.
Kullanıcı arayüzü katmanı
Kullanıcı arayüzü katmanındaki birincil Sayfalama kitaplığı bileşeni, sayfaya ayrılmış verileri işleyen bir RecyclerView
adaptörü olan PagingDataAdapter
'dir.
Alternatif olarak, kendi özel adaptörünüzü oluşturmak için birlikte verilen AsyncPagingDataDiffer
bileşenini kullanabilirsiniz.
Ek kaynaklar
Sayfalama kitaplığı hakkında daha fazla bilgi edinmek için aşağıdaki ek kaynaklara bakın:
Codelab uygulamaları
Sizin için önerilenler
- Not: JavaScript kapalıyken bağlantı metni gösterilir
- Sayfaya ayrılmış verileri yükleme ve görüntüleme
- 3. Sayfalamaya Geçiş
- Ağı ve veritabanından sayfa