Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- designPattern
- a
- 추상팩토리패턴
- Observer Pattern
- F
- 추상 팩토리
- 디자인패턴
- PrototypePattern
- 코틀린
- El
- Kotlin
- 옵저버 패턴
- Design Pattern
- 함수형프로그래밍
- 프로토타입 패턴
- Abstract Factory
- ㅓ
- Functional Programming
- 디자인패턴 #
- ㅋㅁ
- 팩토리 메소드
- factory method
- builderPattern
- Singleton
- 빌터패턴
- r
- 싱글톤
Archives
- Today
- Total
오늘도 더 나은 코드를 작성하였습니까?
UI에 페이징된 데이터 표시 본문
Activity의 onCreate() / fragment onViewCreated() 에서 최종적인 페이징된 반응형 데이터 스트림을 소비한다.
- PagingDataAdapter 클래스의 인스턴스를 만듭니다.
- 페이징된 데이터를 표시할 RecyclerView 목록에 PagingDataAdapter 인스턴스를 전달합니다.
- PagingData 스트림을 확인하고 생성된 각 값을 어댑터의 submitData() 메서드에 전달합니다
val viewModel by viewModels<ExampleViewModel>()
val pagingAdapter = UserAdapter(UserComparator)
val recyclerView = findViewById<RecyclerView>(R.id.recycler_view)
recyclerView.adapter = pagingAdapter
// Activities can use lifecycleScope directly,
// but Fragments should instead use viewLifecycleOwner.lifecycleScope.
lifecycleScope.launch {
viewModel.flow.collectLatest { pagingData ->
pagingAdapter.submitData(pagingData)
}
}
submitData() 메서드는 PagingSource가 무효화되거나 어댑터의 새로고침 메서드가 호출될 때까지 중단되며 반환하지 않습니다. 즉, submitData() 호출 이후의 코드가 의도한 것보다 훨씬 늦게 실행될 수 있기 때문에 사용자 편의를 고려하여 로딩및 대기 화면이 필요하다.
'Android Jetpack Architecture > Paging3' 카테고리의 다른 글
RemoteMediator 구현하기 (0) | 2021.08.19 |
---|---|
네트워크 및 데이터베이스의 페이징. (0) | 2021.08.19 |
PagingDataAdapter 정의하기. (0) | 2021.08.19 |
PagingData 스트림 설정(Pager 객체 만들기) (0) | 2021.08.19 |
Paging3 데이터 로드 (0) | 2021.08.19 |