Omówienie biblioteki stronicowania Część stanowiąca część Androida Jetpack.
Biblioteka stronicowania ułatwia ładowanie i wyświetlanie stron danych z większego zbioru danych z pamięci lokalnej lub przez sieć. Takie podejście pozwala aplikacji efektywniej wykorzystywać przepustowość sieci i zasoby systemowe. Komponenty biblioteki Paging zostały zaprojektowane tak, aby pasowały do zalecanej architektury aplikacji na Androida, integrują się bezproblemowo z innymi komponentami Jetpack i zapewniają znakomitą obsługę Kotlin.
Zalety korzystania z biblioteki stronicowania
Biblioteka stronicowania zawiera te funkcje:
- Buforowanie w pamięci dla danych stronicowanych. Pomaga to zadbać o to, aby aplikacja efektywnie korzystała z zasobów systemowych podczas pracy z uporządkowanymi danymi.
- Wbudowana funkcja usuwania duplikatów żądań, która pomaga zapewnić efektywne korzystanie przez aplikację z przepustowości sieci i zasobów systemowych.
- Konfigurowalne adaptery
RecyclerView
, które automatycznie wysyłają żądania danych, gdy użytkownik przewija je pod koniec wczytywanych danych. - Obsługa pierwszej klasy kotlin i przepływów oraz narzędzi
LiveData
i RxJava. - Wbudowana obsługa błędów, w tym funkcje odświeżania i ponawiania prób.
Prześlij opinię
Twoja opinia pomoże nam ulepszyć Jetpack. Daj nam znać, jeśli znajdziesz nowe wydania lub masz pomysły na ulepszenie tej biblioteki. Zanim utworzysz nową bibliotekę, sprawdź, czy występują w niej istniejące problemy. Klikając przycisk gwiazdki, możesz oddać głos w sprawie istniejącego problemu.
Więcej informacji o przesyłaniu opinii znajdziesz w dokumentacji narzędzia Issue Tracker.
Skonfiguruj
Aby zaimportować komponenty stronicowania do aplikacji na Androida, dodaj do jej pliku build.gradle
te zależności:
Odlotowe
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") }
Architektura biblioteki
Komponenty biblioteki stronicowania działają w 3 warstwach aplikacji:
- Warstwa repozytorium
- Warstwa
ViewModel
- Warstwa interfejsu
W tej sekcji opisujemy komponenty biblioteki stronicowania, które działają w poszczególnych warstwach, oraz sposób ich współdziałania przy wczytywaniu i wyświetlaniu danych stronicowanych.
Warstwa repozytorium
Podstawowym komponentem biblioteki stronicowania w warstwie repozytorium jest PagingSource
. Każdy obiekt PagingSource
określa źródło danych oraz sposób ich pobierania. Obiekt PagingSource
może wczytywać dane z dowolnego źródła, w tym ze źródeł sieciowych i lokalnych baz danych.
Innym komponentem biblioteki stronicowania, z którego możesz korzystać, jest RemoteMediator
. Obiekt RemoteMediator
obsługuje stronicowanie ze źródła danych warstw, takiego jak źródło danych sieciowych z lokalną pamięcią podręczną bazy danych.
Warstwa ViewModel
Komponent Pager
udostępnia publiczny interfejs API służący do tworzenia instancji PagingData
, które są udostępniane w strumieniach reakcji, na podstawie obiektu PagingSource
i obiektu konfiguracji PagingConfig
.
Komponent łączący warstwę ViewModel
z interfejsem użytkownika to PagingData
. Obiekt PagingData
to kontener na zrzut danych podzielonych na strony. Wysyła zapytanie do obiektu PagingSource
i zapisuje wynik.
Warstwa interfejsu
Podstawowym komponentem biblioteki stronicowania w warstwie interfejsu jest PagingDataAdapter
– adapter RecyclerView
, który obsługuje dane podzielone na strony.
Możesz też użyć dołączonego komponentu AsyncPagingDataDiffer
, aby utworzyć własny adapter niestandardowy.
Dodatkowe materiały
Więcej informacji o bibliotece stronicowania znajdziesz w tych dodatkowych materiałach:
Ćwiczenia z programowania
- Ćwiczenie z programowania dotyczące podstaw stron docelowych na Androidzie
- Ćwiczenie z programowania dotyczące funkcji Android Paging Advanced
Próbki
- Przykład strony w sekcji Architektura Android
- Strony z komponentami architektury Androida z przykładem sieci
Polecane dla Ciebie
- Uwaga: tekst linku jest wyświetlany, gdy JavaScript jest wyłączony
- Wczytywanie i wyświetlanie danych z podziałem na strony
- Migrate to Paging 3 (Migracja do strony 3)
- Strona z sieci i bazy danych