안드로이드 앱 개발 공부/자꾸 까먹어서 적어두는 구현방법

[Android] Kotlin 리사이클러뷰 스크롤 끝까지 내려갔을 때

플래시🦥 2023. 4. 21.
반응형

안드로이드의 Paging은 많은 데이터를 한 번에 가져오지 않고 일정한 크기만큼 나눠서 가져오는 것이다. 

 

이번에는 paging 라이브러리를 사용하는 것이 아니라, 많지 않은 데이터를 가져올 때 간단하게 페이징 처리하는 기능을 구현하는 것을 기록해보려 한다. 

 

예전에는 웹페이지 처럼 다음 페이지 번호를 눌러서 넘어가도록 구현을 해본 적이 있었는데, 그 방법과 유사하지만 간단하다. 

리사이클러뷰 어댑터나 레트로핏 데이터 가져오는 건 건너뛰고 

핵심인 스크롤을 내려서 최하단에 내려갔을 때 이를 감지하고 원하는  동작을 할 수 있도록 하면 된다. 

 

binding.searchRecyclerView.addOnScrollListener(object : RecyclerView.OnScrollListener() {
    override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
        super.onScrolled(recyclerView, dx, dy)
       
        if (!binding.searchRecyclerView.canScrollVertically(1)) {   //최하단에 오면`
            //원하는 동작
        }

    }
})

 

1을 놓으면 최하단을 의미하고  -1은 최상단을 의미한다. 

 

여기서 다음 데이터를 가져오도록 하는 것은 따로 작성을 해야 한다. 

최초 데이터를 가져오고 스크롤이 최하단에 닿았을  때 다음 데이터를 가져오도록 호출해서 사용했다. 

 

728x90
반응형

댓글