Я реализовал библиотеку подкачки с Room. Я использую Единый Источник Истины. Статьи (мои данные) будут загружены через Retrofit и будут добавлены в базу данных Room. Затем адаптер повторного просмотра прослушивает данные через ArticleItemBoundaryCallback :
public class ArticleItemBoundaryCallback extends PagedList.BoundaryCallback<ArticleModel> {
ArticleRepository repository;
public ArticleItemBoundaryCallback(ArticleRepository repository) {
this.repository =repository;
}
@Override
public void onZeroItemsLoaded() {
super.onZeroItemsLoaded();
repository.getTenArticlesfromFirebaseAndRetrofit(1);
}
@Override
public void onItemAtEndLoaded(@NonNull ArticleModel itemAtEnd) {
super.onItemAtEndLoaded(itemAtEnd);
int page=0;
if (itemAtEnd.getPage() == 0) {
page = itemAtEnd.getPage() + 2;
} else {
page = itemAtEnd.getPage()+1;
}
repository.getTenArticlesfromFirebaseAndRetrofit(page);
}}
Хранилище решает, нужно ли ему извлекать данные из inte rnet или искать локальный кеш (база данных комнаты).
Но моя проблема в том, что в конце моего обзора переработчика нет индикатора загрузки. Пользователи могут быть не уверены, достигли ли они конца списка или загрузки. Я видел этот пример кода Google , но я не мог найти, где они добавили представление для загрузки.