내 애플리케이션에서 서버의 데이터를 표시하고 서버에서 모든 데이터를 보내고 싶습니다. android i에서 은의 10 데이터를 가져와 표시하고 10 개의 데이터를 서버에 보내고 다른 10 개의 데이터를 표시 할 때 표시합니다.
서버 요청은 Retrofit2
입니다.Android에서 recyclerView에서 loadMore를 사용하는 방법
어떻게 안드로이드에 게으른 로더를 사용할 수 있습니까?
내 애플리케이션에서 서버의 데이터를 표시하고 서버에서 모든 데이터를 보내고 싶습니다. android i에서 은의 10 데이터를 가져와 표시하고 10 개의 데이터를 서버에 보내고 다른 10 개의 데이터를 표시 할 때 표시합니다.
서버 요청은 Retrofit2
입니다.Android에서 recyclerView에서 loadMore를 사용하는 방법
어떻게 안드로이드에 게으른 로더를 사용할 수 있습니까?
API가 Limit 및 Offset 매개 변수를 지원하는지 확인합니다 ( ). 그러면 API가 초기에 오프셋 10으로 10 개의 요소를 제공 한 다음 목록의 끝에 도달하면 offset = (Number of 목록의 항목)
웹 서비스에 페이지 변수를 전달해야합니다. 여기에서 llManager는 리사이클 러 뷰에 첨부 된 LinearLayoutManager이고 총 레코드는 사용 가능한 총 데이터 수입니다.
마지막으로 리사이클 러 뷰의 객체에 도달했을 때 웹 서비스를 호출하고 리사이클 러 뷰의 현재 데이터가 사용 가능한 총 데이터보다 작 으면 서비스의 페이지 카운트 값이 증가하여 새 페이지 데이터를 가져옵니다.
또 하나의 사실은 서비스가 이미 데이터를 가져 오기 위해 실행 중인지 확인하기 위해 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();
}
}
}
});
내 프로젝트를 github, https://github.com/shayanpourvatan/PaginationHandler에서 살펴보십시오. –