나의 플랫폼/안드로이드
[Android] AndroidX Paging 사용 시 내가 겪은 부분
GsBOB
2019. 11. 1. 09:37
Paging Library는 정말 편하고 잘 만들어져 있지만,
처음 사용하면서 겪게된 부분을 공유하고자 글을 쓴다.
## 간략 내용
- setInitialLoadSizeHint와 setPageSize 사이즈를 제법 넉넉하게 줘라.
- DataSource.Factory에서 DataSource 객체를 꼭 생성해라.
- DataSource객체를 참조할때는 DataSource.Factory객체를 통해서만 해라.
## 내가 겪은 내용
- setInitialLoadSizeHint와 setPageSize 사이즈를 제법 넉넉하게 줘라.
- 당연히 Paging Library는 RecyclerView와 사용할텐데,
- 사이즈를 너무 좁게 잡으면 PagedListAdapter에서 loadAfter를 호출 되기 전에
- 모든 데이터를 가져왔다고 인식 하는 현상이 발생 한다.
- 열심히 ScrollUp 해도 loadAfter가 불러와지지 않는다.
- DataSource.Factory에서 DataSource 객체를 꼭 생성해라.
- RecyclerView를 refresh하기 위해 DataSource의 invalidate함수를 이용할 텐데
- 아무런 동작도 발생하지 않는다.
- invalidate를 하더라도, DataSource.Factory에서 같은 DataSource객체가 넘어오므로,
- 변경이 없다고 판단하여 아무 동작도 일어나지 않는 것으로 보임.
- DataSource객체를 참조할때는 DataSource.Factory객체를 통해서만 해라.
- 2번과 비슷한 내용이지만, invalidate같은 함수로 갱신을 할 경우,
- DataSource.Factory에서 새로운 DataSource객체를 생성 한다.
- 따라서, DataSource를 참조해서 사용하고 싶으면
- DataSource.Factory에서 새로운 DataSource를 만들때 마다 할당해줘야 한다.
샘플소스는 Android Architecture Components에서 보시면 좋다.
https://github.com/android/architecture-components-samples/tree/master/PagingWithNetworkSample