RecyclerView를 이용해 DB에서 데이터를 100개중 50개를 가져왔다고 치자, 그럼 맨 아래로 스크롤 되었을때 나머지 50개를 추가로 불러와야 하는데 그럴때는 아래 코드를 사용하면된다.
var pastVisiblesItems: Int = 0
var visibleItemCount: Int = 0
var totalItemCount: Int = 0
recyclerView.addOnScrollListener(
object : RecyclerView.OnScrollListener() {
override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
if (dy > 0) //check for scroll down
{
visibleItemCount = mLayoutManager.childCount
totalItemCount = mLayoutManager.itemCount
pastVisiblesItems = mLayoutManager.findFirstVisibleItemPosition()
if (loading) {
if (visibleItemCount + pastVisiblesItems >= totalItemCount) {
loading = false
// Log.v("...", "Last Item Wow !")
//Do pagination.. i.e. fetch new data
updateList(totalItemCount.toString())
}
}
}
}
override fun onScrollStateChanged(view: RecyclerView, scrollState: Int) {
//OnScrollListener.SCROLL_STATE_IDLE은 스크롤이 이동하다가 멈추었을때 발생되는 스크롤 상태입니다.
}
})
쿼리 작성은 이전에 작성했던 게시글을 참고하면 될것같다.
'프로그래밍 > Kotlin' 카테고리의 다른 글
[kotlin] BottomNavigationView (0) | 2022.08.10 |
---|---|
[Kotlin] TabLayout (0) | 2022.08.09 |
[kotlin] Singletone (0) | 2022.07.26 |
[kotlin] Object 사용법 (0) | 2022.07.25 |
[Kotlin] Naver API를 이용해 책 검색 코드 (0) | 2022.07.20 |
댓글