[Android] Paging3에서 데이터 없을 때 처리하기

2023. 2. 20. 17:13·Android/Paging3
반응형

Paging3는 PagingData를 PagingDataAdapter의 submitData로 전달하여 리스트를 표시한다.

 

만약 리스트에 표시할 데이터가 없는 경우 초기 화면을 표시해야 하지만,

데이터가 없어도 PagingData는 null이나 empty로 내려오지 않는다.

 

이럴 때 PagingDataAdapter의 addLoadStateListener를 사용하면 데이터가 없을 때 처리를 할 수 있다.

addLoadStateListener는 CombinedLoadState로 현재 PagingData의 로딩 상태를 관찰한다.

 

CombinedLoadStates의 LoadState 정보는 다음과 같다.(참고)

• append
  목록의 끝에서 데이터를 로드하는 상태

• prepend
  목록의 시작 부분에서 데이터를 로드하는 상태
• refresh
  PagingData를 처음 로드할 때의 로드 

여기서 append의 endOfPaginationReached를 사용한다.

endOfPaginationReached는 추가 데이터를 계속 요청해야 하는지 중지해야 하는지 Boolean 값으로 알려준다.

endOfPaginationReached 참고 자료


mAdapter.addLoadStateListener { combinedLoadStates ->
    if(combinedLoadStates.append.endOfPaginationReached) {
    	// 아이템 수가 1보다 작으면 Empty View 보이도록 처리
        if(mAdapter.itemCount < 1) {
            mBinding.tvListEmpty.visibility = View.VISIBLE
        }else {
        // 아이템 수가 1보다 크면 Empty View 안보이도록 처리
            mBinding.tvListEmpty.visibility = View.GONE
        }
    }
}

(왼쪽) 코드 적용 전 / (오른쪽) 코드 적용 후

반응형

'Android > Paging3' 카테고리의 다른 글

[Android] Paging3에서 아이템 삭제하기 + 로딩 처리  (0) 2023.01.19
[Android] Paging3, 스크롤 시 로딩 화면 추가하기  (0) 2023.01.18
[Android] Paging3 + Room + Flow 사용하기  (1) 2023.01.16
'Android/Paging3' 카테고리의 다른 글
  • [Android] Paging3에서 아이템 삭제하기 + 로딩 처리
  • [Android] Paging3, 스크롤 시 로딩 화면 추가하기
  • [Android] Paging3 + Room + Flow 사용하기
O_Gyong
O_Gyong
안드로이드 기술 정리
  • O_Gyong
    O_Gyong's TECH
    O_Gyong
    • 분류 전체보기 (79)
      • Android (56)
        • ADB (4)
        • AddView (1)
        • Architecture (1)
        • Bluetooth (2)
        • BuildConfig (1)
        • Calendar (3)
        • Camera (2)
        • Cipher (1)
        • Compose (1)
        • ConstraintSet (1)
        • DataStore (1)
        • Dialog (1)
        • DrawerLayout (1)
        • Flow (1)
        • Glide (1)
        • MQTT (2)
        • Paging3 (4)
        • Permission (1)
        • SharedPreferences (3)
        • RecyclerView (5)
        • Room (1)
        • Splash (1)
        • TabLayout (2)
        • TextWatcher (1)
        • Update (1)
        • 이슈 처리 (13)
      • Android Studio (5)
      • Firebase (1)
      • Git (3)
      • 작업 일지 (13)
  • 최근 글

  • 인기 글

  • 태그

    Kotlin
    webview
    paging
    loading
    Navigation
    CalendarView
    Room
    firebase
    hilt
    BLE
    해상도
    flow
    GIT
    Andoird
    Android
    Pagination
    in-app update
    MQTT
    Android Studio
    TabLayout
    Bluetooth
    issue
    Paging3
    compose
    github
    ADB
    CameraX
    recyclerview
    SharedPreferences
    kizitonwose
  • 링크

    • GitHub
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • hELLO· Designed By정상우.v4.10.4
O_Gyong
[Android] Paging3에서 데이터 없을 때 처리하기
상단으로

티스토리툴바