Kotlin by viewModels()

Всем привет! Вопрос такой: by viewModels() вернёт один и тот же экземпляр в разных fragment, или нет? Если нет, то прошу подсказать, каким образом можно получить один и тот же экземпляр viewModel в родительском и дочернем фрагментах.


Ответы (1 шт):

Автор решения: IR42

Чтобы в получить ViewModel родительского фрагмента, то нужно в дочернем фрагменте этот родительский фрагмент передать в viewModels как ViewModelStoreOwner:

private val viewModel: MyViewModel by viewModels(ownerProducer = ::requireParentFragment)

В противном случае будет использован дочерний фрагмент и будет создан новый экземпляр модели

→ Ссылка