使用分页库显示加载指示器

Posted

技术标签:

【中文标题】使用分页库显示加载指示器【英文标题】:Displaying loading indicator with Paging Library 【发布时间】:2020-06-17 23:51:09 【问题描述】:

我已经用 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);


存储库决定是否需要从 Internet 获取数据或查找本地缓存(房间数据库)。

但我的问题是我的 recyclerview 末尾没有加载指示器。用户可能不确定他们是否到达列表末尾或正在加载。 我看到this google code sample 但我找不到他们在哪里添加加载视图。

【问题讨论】:

【参考方案1】:

借助新的 Paging 3 库,您可以在列表的开头和结尾显示 loading state 以及重试功能。

【讨论】:

以上是关于使用分页库显示加载指示器的主要内容,如果未能解决你的问题,请参考以下文章

Kendo Grid - 它自己的加载指示器

分页库:如何按需重新加载部分数据?

使用分页库时,观察者显示列表大小为零

分页库 - 网络 + db 的边界回调,API 获取页面和大小

Angular 5:使用异步管道搜索 - 显示加载指示器

Mvvmcross 加载指示器未显示