android - 显示带有 android 分页库的进度条
问题描述
我正在使用分页库和房间,使我的房间数据库成为我的应用程序的单层真实性。当使用改造从服务器完成获取时,我将结果本地保存在数据库中,然后我使用分页库从数据库获取数据。我正在使用BoundaryCallback。
@Override
public void onZeroItemsLoaded() {
requestAndSaveData();
}
@Override
public void onItemAtEndLoaded(@NonNull Photo itemAtEnd) {
requestAndSaveData();
}
private void requestAndSaveData() {
if (isRequestInProgress) return;
isRequestInProgress = true;
apiInterface.getPhotos(lastRequestPage, NETWORK_PAGE_SIZE).enqueue(new Callback<PhotoList>() {
@Override
public void onResponse(Call<PhotoList> call, Response<PhotoList> response) {
if (response.isSuccessful()) {
cache.insertPhotos(response.body().getHits()); //todo only save 20 - 40 items
lastRequestPage++;
isRequestInProgress = false;
Log.i("deb", "number from boundary: " + response.body().getHits().size());
}
}
当数据库中没有项目或用户滚动到最后一个项目时,我调用requestAndSaveData()
从服务器获取数据并将其保存到数据库中的方法。
我的问题是如何在从服务器加载下一页并将其保存到数据库时在列表底部显示进度条,因为它可能需要很长时间?
解决方案
首先,您可以通过询问如何在底部显示加载指示器RecyclerView
而不是将其缩小到分页库来扩大您的问题范围。
其次,您可以通过在列表中添加一个仅用于显示负载指示器的额外单元格来轻松地在列表底部显示一个加载指示器,此处使用类似的想法来显示网络状态:
推荐阅读
- elasticsearch - 按最新日期过滤 Kibana 中的可视化
- r - 用希腊字母和上标修改 ggplot 中的构面标签名称
- javascript - 无法将 moment.js 格式化日期转换为有效日期
- php - JSON 成功未触发
- react-native - React Native - React 导航抽屉错误
- c# - 如果我离开页面并返回,模型返回 null
- javascript - 无法设置未定义的 Typescript 类的属性“名称”
- r - 是否有用于为现有数据框创建新列并将“03”分配给前 68 行并将“04”分配给接下来的 68 行的 R 函数?
- java - 我无法通过我的代码单击 Button 元素,有人可以在这里帮忙吗
- python - 无法通过具有指定 device_id 的 pylibftdi 与 FTDI 设备通信