본문 바로가기

안드로이드

[리팩토링] MVVM + ViewPager2

과정

1. xml에서 viewpager를 viewpager2로 교체

2. FragmentStatePagerAdapter를 FragmentStateAdapter로 교체

3. Activity에서 adapter의 setOnPageChangeListener를 registerOnPageListener로 교체

4. Activity가 FragmentActivity()를 상속받게 변경

5. Repository, ViewModel을 프래그먼트에 적절히 정의

  - 프래그먼트에서 by viewModels() 와 같이 delegate 패턴을 사용하기 위해

    implementation "androidx.fragment:fragment-ktx:1.2.5"를 추가해야 한다.

 

장점

 - 관심사 분리

 - 유지보수 하기 쉬운 코드