Я использую Koin 2.1.6 в своем модуле приложения. Вот артефакты, которые я использую
implementation "org.koin:koin-android:2.1.6"
implementation "org.koin:koin-core:2.1.6"
implementation "org.koin:koin-androidx-viewmodel:2.1.6"
implementation "org.koin:koin-androidx-fragment:2.1.6"
А модуль Koin есть
val userModule = module {
viewModel { (handle: SavedStateHandle) -> UserViewModel(get(), handle) }
}
class UserViewModel(
val iService: IService, //injected from core module
val handle: SavedStateHandle
) : ViewModel()
Я использую это ViewModel
на UserFragment
private val viewModel: UserViewModel by stateViewModel()
UserFragment
содержит внутренний фрагмент- UserUpdates
, расширенный из макета, разделяет вышеуказанный ViewModel
.
<fragment android:name="UserUpdates"
android:id="@id/fragment_user_updates"
android:width="match_parent"
android:height="wrap_content" />
На UserUpdates
фрагменте я установил ViewModel
следующим образом
private val viewModel: UserViewModel by stateSharedViewModel()
Однако я обнаружил, что сгенерированные экземпляры ViewModel не используются совместно. Фактически они созданы как новые объекты. Что мне здесь не хватает?