ViewModel наблюдает за изменениями данных в других фрагментах

У меня есть фрагмент предметов, в котором перечислены все предметы и еще один фрагмент, который будет использовать список предметов для создания документа продажи. Я использую один и тот же viewModel для них обоих, когда я фильтрую элементы во фрагментах элементов, элементы во фрагменте продажи также фильтруются, потому что данные наблюдаются в обоих фрагментах (это происходит, когда я использую activityViewModels для инициализации viewModel). Когда я использую viewModels для инициализации модели представления, я не могу подробно раскрыть фрагменты данных для модуля продажи.


person Wijdan    schedule 27.02.2021    source источник


Ответы (1)


Это правильное поведение.

activityViewModels привязан к жизненному циклу действия, который переживает фрагмент. Поэтому, если вы заменяете / удаляете / добавляете фрагменты в этом действии, ваша модель представления живет столько же, сколько и действие.

viewModel инициализация связывает его с жизненным циклом фрагмента. Если у вас есть 2 фрагмента на одном экране, у вас также есть 2 разные модели просмотра - это 2 разных объекта. Если вы заменяете / добавляете / удаляете фрагменты, ваша модель представления умирает вместе с ее фрагментом.

person Luke    schedule 23.03.2021