sabujak-sabujak / Pickle

Instagram-oriented android image picker library
Apache License 2.0
4 stars 2 forks source link

PickleDataSource 에서의 초기로드 체크 #17

Closed kklyoon closed 4 years ago

kklyoon commented 4 years ago

초기 로딩 여부를 체크하기 위해

PickleViewModel 에셔 initialLoadState 를 넣어주셨는데

Status.SUCCESS 라고 떴을 때 PagedListAdapter 에서 itemcount 를 찍으니 0이 뜹니다.

이 타이밍에 강제로 접근하려해도 OutOfBound 에러나구요. 제가 제대로 이해했는지 아니면 어느 타이밍에 initialLoadState 를 체크해야되는지 궁금합니다.

Charlezz commented 4 years ago

PagedListAdapter내에 있는 AsyncPagedListDiffer에 의해 비동기적으로 처리되기 때문에 DataSource에서 초기 로드 상태를 받아서 아이템을 get하시려는 경우 0일 수 있습니다. Adapter에서 itemCount가 변경되는 시점을 잡으시려면 PagedListAdapter를 상속하여 onCurrentListChanged() 콜백 메서드를 오버라이드 하는것으로 해결하거나, submitList의 Runnalble콜백을 추가하는 것으로 commit 시점을 잡아낼 수 있습니다.