paging3 에서 빈 목록을 체크 하는 법
뷰를 짜다보면, paging adpater에 불러와진 데이터가 없을 경우 '불러올 데이터가 없습니다' 와 같은 화면을 보여줘야 할 때가 있습니다.
paging 에서는 adapter.getItemCount 를 할 시 항상 0이 나오기 때문에, 일반적인 recyclerAdpater과는 다른 방법으로 empty list인지 아닌지를 체크해야합니다.
//SearchRepositoriesActivity.initAdapter()에서 addLoadStateListener를 호출합니다.
//CombinedLoadStates의 refresh 상태가 NotLoading 및 adapter.itemCount == 0인 경우 목록이 비어 있습니다.
adapter.addLoadStateListener { loadState ->
val isListEmpty = loadState.refresh is LoadState.NotLoading && adapter.itemCount == 0
//로드된 데이터가 empty일때 하고 싶은 동작
}
adapter.addLoadStateListener { loadState ->
if (loadState.source.refresh is LoadState.NotLoading && loadState.append.endOfPaginationReached && adapter.itemCount < 1) {
//로드된 데이터가 empty일때 하고 싶은 동작
}
}