【发布时间】:2019-12-14 09:53:13
【问题描述】:
我正在从https://jsonplaceholder.typicode.com/photos 获取 json 数据,并希望将这些数据拆分为页面,以便我可以在我的应用中实现 Android 分页库。有谁知道我如何做到这一点?
【问题讨论】:
我正在从https://jsonplaceholder.typicode.com/photos 获取 json 数据,并希望将这些数据拆分为页面,以便我可以在我的应用中实现 Android 分页库。有谁知道我如何做到这一点?
【问题讨论】:
第 1 页(返回 id 1 到 10 的照片): https://jsonplaceholder.typicode.com/photos?_start=0&_limit=10
第 2 页(返回 id 11 到 20 的照片) https://jsonplaceholder.typicode.com/photos?_start=10&_limit=10
【讨论】:
对于分页,您将使用 android jetpack https://developer.android.com/topic/libraries/architecture/paging
另一种方法
从 api 中获取特定数量的数据并添加到 recyleview 中,然后在再次加载特定数据后执行以下操作,您将调用进一步剩余的特定数据创建计数器来计算加载的数据。
李>参考https://www.youtube.com/watch?v=2-vZ1g_G1Zo
boolean isScrolling=false;
rView.setAdapter(adapter);
rView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int
newState) {
super.onScrollStateChanged(recyclerView, newState);
if(newState == AbsListView.OnScrollListener.SCROLL_STATE_TOUCH_SCROLL)
{
isScrolling=true;
}
}
@Override
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
currentitems=layoutManager.getChildCount();
totaliitems=layoutManager.getItemCount();
scrolloutitems=layoutManager.findFirstVisibleItemPosition();
if(isScrolling && (currentitems + scrolloutitems == totaliitems))
{
isScrolling=false;
getAllItemList();
}
}
});
adapter.notifyDataSetChanged();
getAllItemList();
【讨论】: