341일차 - Android Paging3 (3)

2021. 12. 11. 22:50Diary/300~400

 

 

vm.awardPagingData.observe(viewLifecycleOwner, { data ->
  lifecycleScope.launch {
    data.collectLatest { awardAdapter.submitData(it) }
  }
})
vm.certificationPagingData.observe(viewLifecycleOwner, { data ->
  lifecycleScope.launch {
    data.collectLatest { certificationAdapter.submitData(it) }
  }
})
vm.volunteerPagingData.observe(viewLifecycleOwner, { data ->
  lifecycleScope.launch {
    data.collectLatest { volunteerAdapter.submitData(it) }
  }
})
vm.gradePagingData.observe(viewLifecycleOwner, { data ->
  lifecycleScope.launch {
    data.collectLatest { gradeAdapter.submitData(it) }
  }
})

life_record_viewpager.offscreenPageLimit = 1
val k = arrayListOf(awardAdapter, certificationAdapter, volunteerAdapter, gradeAdapter)
life_record_viewpager.adapter = ViewPagerAdapter(k)
life_record_viewpager.orientation = ViewPager2.ORIENTATION_HORIZONTAL

spring_dots_indicator.setViewPager2(life_record_viewpager)
spring_dots_indicator.setDotIndicatorColor(R.color.normal_black)
spring_dots_indicator.setStrokeDotsIndicatorColor(R.color.pink)

 

submitData를 통해 PagingData를

Adapter에 넣어주면 알아서 관리해준다.

그리고 ViewPager2를 통해

어댑터 자체의 스와이프 기능도 추가했다.

다른 어댑터와의 스와이프가

Paging3를 통해 아주 간결하게 이뤄진다.

 

다만, Paging3의 단점은

내부 Value를 보기 힘들다는 점이다.

중간중간 값을 뜯어보고 싶더라도

Paging의 Value는 뜯어볼 수 없다.

Adapter를 SnapShot를 찍어서 값을 보거나

Adapter에서 들어온 값을 확인하지 않는 이상은

중간에 값이 어떻게 들어오고 나가는지 확인할 수 없다.

 

아직은 많이 안써봐서

적용하는 방법만 익혔다.

이에 대한 깊은 지식은

차후에 점점 쌓아가야 할 것 같다.