我正在我的Android应用中为我的API中的调用实现改造。 我在API中调用了很多结果,然后我决定在API中创建一个分页。 我的通话API返回如下:
{
"meta": {
"server": "localhost",
"offset": "1",
"limit": "1",
"recordCount": 1
},
"records": [
{
"userName": "ricardo"
}
]
}
Call<BaseResponse<User>> user = userResource.getListUser(
authController.getTokenHeader(),
limit,
offset
);
user.enqueue(new Callback<BaseResponse<User>>() {
@Override
public void onResponse(Response<BaseResponse<User>> response, Retrofit retrofit) {
if (response.isSuccess()) {
New Call Api Again if more results
}
@Override
public void onFailure(Throwable t) {}
});
当我将通话中的“偏移”更改为“步骤”到下一页时。
是否有任何改装方法为我做这个逻辑? 如果没有,我怎么能实现这个逻辑?
while (callApi){
UserResource userResource = getRetrofit().create(UserResource.class);
Call<BaseResponse<User>> user = userResource.getListUsers(
authController.getTokenHeader(),
ids,
cdCode,
limit,
offset
);
user.enqueue(new Callback<BaseResponse<User>>() {
@Override
public void onResponse(Response<BaseResponse<User>> response, Retrofit retrofit) {
if (response.isSuccess()) {
offset = offset+offset;
callInvoice = false;
}
}
@Override
public void onFailure(Throwable t) {
}
});
}
答案 0 :(得分:0)
在 api 中创建分页。根据页面调用,当您的列表视图滚动时,如果没有服务正在呼叫,则调用该页面。
mOrdersView.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 visibleItemCount = layoutManager.getChildCount();
int totalItemCount = layoutManager.getItemCount();
int firstVisibleItemPosition = layoutManager.findFirstVisibleItemPosition();
if (!isLoading && !isLastPage) {
if (visibleItemCount + firstVisibleItemPosition >= totalItemCount
&& firstVisibleItemPosition >= 0
&& totalItemCount >= CommonUtils.pageLimit) {
getNextPage();
}
}
}
});
您可以像这样实现滚动侦听器