在我的应用程序中,我希望从服务器显示数据,并从服务器发送给我所有数据。在android中我应该获取10个数据并显示它,滚动并向服务器显示10个数据发送请求并获取其他10个数据!
对于服务器请求,请使用Retrofit2
。
如何在android中使用延迟加载程序?
答案 0 :(得分:0)
检查您的API是否支持限制和偏移参数, 如果它支持然后请求API给你最初的10个元素,偏移量为0,然后到达列表的末尾,再次使用offset =(列表中的项目数)调用服务
答案 1 :(得分:0)
您应该将页面变量传递给Web服务。 这里llManager是附加到您的回收站视图的LinearLayoutManager,总记录是服务中可用数据的总数。
当您到达回收站视图的最后一个对象时,这将调用您的Web服务,并且您在回收站视图中的当前数据小于总可用数据,并增加服务的页面计数值以获取新的页面数据。
还有一件事还会维护一个标志isCalling来检查服务是否已经在运行以获取数据。
recyclerview.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
}
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
int visibleThreshold = 1;
int totalItemCount = llManager.getItemCount();
int lastVisibleItem = llManager.findLastVisibleItemPosition();
if (totalItemCount <= (lastVisibleItem + visibleThreshold)) {
if (totalRecords > totalItemCount && !isCalling) {
page = page + 1;
callwebservice();
}
}
}
});