Paging35 [Android] An instance of PagingSource was re-used ··· 기존 프로젝트에서 Hilt를 적용을 위해 코드를 수정하였는데 Paging3 Adapter의 refresh() 호출 시 앱이 죽는 현상이 발생했다. java.lang.IllegalStateException: An instance of PagingSource was re-used when Pager expected to create a new instance. Ensure that the pagingSourceFactory passed to Pager always returns a new instance of PagingSource. 에러의 내용은 Pager가 새로운 인스턴스를 만들 때 PagingSource의 인스턴스를 재사용한다는 것이다. 문제가 되는 코드는 아래와 같았다. Repository @Sing.. Android/이슈 처리 2023. 3. 17. [Android] Paging3에서 데이터 없을 때 처리하기 Paging3는 PagingData를 PagingDataAdapter의 submitData로 전달하여 리스트를 표시한다. 만약 리스트에 표시할 데이터가 없는 경우 초기 화면을 표시해야 하지만, 데이터가 없어도 PagingData는 null이나 empty로 내려오지 않는다. 이럴 때 PagingDataAdapter의 addLoadStateListener를 사용하면 데이터가 없을 때 처리를 할 수 있다. addLoadStateListener는 CombinedLoadState로 현재 PagingData의 로딩 상태를 관찰한다. CombinedLoadStates의 LoadState 정보는 다음과 같다.(참고) • append 목록의 끝에서 데이터를 로드하는 상태 • prepend 목록의 시작 부분에서 데이터를 .. Android/Paging3 2023. 2. 20. [Android] Paging3에서 아이템 삭제하기 + 로딩 처리 [Android] Paging3, 스크롤 시 로딩 화면 추가하기 [Android] Paging3 + Room + Flow 사용하기 [Android] RecyclerView에서 페이징+삭제 처리하기 #2 (with Room) [Android] RecyclerView에서 페이징 처리하기 #1 RecyclerView에서 리스트를 스크롤하다가 어느 순간에 로딩 화면 ogyong.tistory.com 저번에 했던 스크롤 시 로딩 화면을 추가하는 것에 이어서 Paging3에서 아이템을 삭제하고, 삭제가 처리되는 동안 로딩 화면을 띄우는 것을 해보려고 한다. Room 삭제 쿼리 추가 @Dao interface SampleDao { ... /** * 아이템 삭제 */ @Query("DELETE FROM sample W.. Android/Paging3 2023. 1. 19. [Android] Paging3, 스크롤 시 로딩 화면 추가하기 [Android] Paging3 + Room + Flow 사용하기 [Android] RecyclerView에서 페이징+삭제 처리하기 #2 (with Room) [Android] RecyclerView에서 페이징 처리하기 #1 RecyclerView에서 리스트를 스크롤하다가 어느 순간에 로딩 화면이 뜨면서 리스트가 늘어나는 것을 ogyong.tistory.com 저번에 Paging3를 이용해서 리스트를 그려봤다. 여기에 추가로 스크롤을 해서 다음 페이지를 호출할 때 로딩 화면을 그려보려고 한다. Paging3 라이브러리는 LoadState 클래스를 통해 데이터의 로드 상태를 추적할 수 있다. 그리고 로드 상태가 변경되면 LoadState 값을 자동으로 알림 받는 LoadStateAdapter가 존재한다. .. Android/Paging3 2023. 1. 18. [Android] Paging3 + Room + Flow 사용하기 [Android] RecyclerView에서 페이징+삭제 처리하기 #2 (with Room) [Android] RecyclerView에서 페이징 처리하기 #1 RecyclerView에서 리스트를 스크롤하다가 어느 순간에 로딩 화면이 뜨면서 리스트가 늘어나는 것을 본 적 있을 것이다. Adapter에서 등록된 list가 마지막에 ogyong.tistory.com 이전에 기기에 저장된 데이터를 RecyclerView와 Room을 사용해서 페이징 작업을 한 적이 있었다. 이번에는 Paging3 라이브러리를 사용해서 기기에 저장된 데이터를 표시해보려고 한다. (삭제 기능은 다음에..) 참고로 Paging3는 Android Paging Basics codelab과 Android Paging Advanced cod.. Android/Paging3 2023. 1. 16. 이전 1 다음