끄적끄적 스토리

안드로이드 리사이클러 뷰 페이징(페이지네이션) 본문

안드로이드

안드로이드 리사이클러 뷰 페이징(페이지네이션)

2019_02_13 2019. 12. 23. 17:45
728x90

안드로이드 리사이클러 뷰 페이징(페이지네이션)

안드로이드 리사이클러뷰는 뷰 자체를 재활용 한다는 장점이 있다.

데이터만 준비되어있으면 뷰를 다시 사용한다는게 큰 장점이다

하지만 DB에서 데이터를 가져올때 데이터가 무수히 많다면 요청시간이 아주 오래걸릴것이다

물론 100개정도야 충분히 빠르게 데이터가 오겠지만.

그 해결방법으로는 특히나 웹에서 많이 볼 수 있던 페이징(페이지네이션)처리이다.

코드는 크게 어렵지 않다.

리사이클러뷰의 스크롤 최하단이 되었을때 데이터를 로드해오면 된다!

다음은 코드이다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
            @Override
            public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
                super.onScrollStateChanged(recyclerView, newState);
            }
 
            @Override
            public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
                super.onScrolled(recyclerView, dx, dy);
 
                int lastPosition = ((LinearLayoutManager) recyclerView.getLayoutManager()).findLastCompletelyVisibleItemPosition();
                int totalCount = recyclerView.getAdapter().getItemCount();
 
                if(lastPosition == totalCount){
                    //아이템 추가 ! 입맛에 맞게 설정하시면됩니다.
                }
            }
        });