使用分页库显示加载指示器
Displaying loading indicator with Paging Library
我已经用 Room 实现了分页库。我正在使用单一事实来源。文章(我的数据)将通过 Retrofit 获取并插入到 Room 数据库中。然后 recyclerview 适配器通过 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);
}}
存储库决定是否需要从互联网获取数据或查找本地缓存(房间数据库)。
但我的问题是我的 recyclerview 末尾没有加载指示器。用户可能不确定他们是否到达列表末尾或正在加载。
我看到了 this google code sample
但我找不到他们在哪里添加加载视图。
借助新的 Paging 3 库,您可以在列表的开头和结尾显示 loading state 以及重试功能。
我已经用 Room 实现了分页库。我正在使用单一事实来源。文章(我的数据)将通过 Retrofit 获取并插入到 Room 数据库中。然后 recyclerview 适配器通过 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);
}}
存储库决定是否需要从互联网获取数据或查找本地缓存(房间数据库)。
但我的问题是我的 recyclerview 末尾没有加载指示器。用户可能不确定他们是否到达列表末尾或正在加载。 我看到了 this google code sample 但我找不到他们在哪里添加加载视图。
借助新的 Paging 3 库,您可以在列表的开头和结尾显示 loading state 以及重试功能。