-
Koin 사용 시 Activity & Fragment 간 ViewModel 공유Android 2020. 10. 15. 17:27반응형
class MainViewModel(override var repository: Repository) : BaseViewModel() { ... }
뷰모델을 이렇게 선언한 후
val appModule = module { ... viewModel { MainViewModel(get()) } ... }
코인 모듈에서 해당 뷰모델을 추가
class MainActivity : BaseActivity<ActivityMainBinding, MainViewModel>() { ... override val viewModel: MainViewModel by viewModel() private lateinit var homeFragment: HomeFragment ... }
MainActivity에서 viewModel 주입
여기서
MainActivity에 속한 HomeFragment에서 같은 뷰모델을 사용하고 싶다면
ViewModel을 HomeFragment의 생성자로 넘기던가 프레그먼트 생성 후 세팅 해주지 않고
koin의 sharedViewModel()을 사용하면 됨
class HomeFragment : BaseFragment<FragmentHomeBinding>() { ... private val viewModel: MainViewModel by sharedViewModel() ... }
반응형'Android' 카테고리의 다른 글
[Driver] 삼성 스마트폰 USB 드라이버 다운 (0) 2020.10.16 Cannot change whether this adapter has stable IDs while the adapter has registered observers. (0) 2020.10.15 java.lang.NoClassDefFoundError: org/jetbrains/kotlin/cli/common/PropertiesKt (0) 2020.10.06 [Kotlin] Smart Cast (0) 2020.10.05 default 메소드 & static 메소드 in JAVA 8 (0) 2020.10.05