Какое место лучше всего инициировать ViewModel во фрагменте onCreateView или метода onCreate? - PullRequest
0 голосов
/ 02 октября 2018

Я использую живые данные с ViewModel.

У меня есть сценарий, в котором у меня есть два фрагмента и одно действие.Фрагмент A и фрагмент B.

Из Activity я запустил Fragment A (показывает список имен, т.е. извлекается из бэкэнда), а когда я нажимаю на Name, отображается его фрагмент B (это обратный стек).

Теперь из фрагмента B, если я нажимаю кнопку «Назад», он возвращается к фрагменту A, он показывает пустой экран, поскольку я реализовал ViewModel в методе onCreate фрагмента A.

Но если я реализовалViewModel в методе oncreateView фрагмента A, он будет продолжать добавлять наблюдателей, поскольку фрагмент не уничтожен.

Ответы [ 2 ]

0 голосов
/ 21 ноября 2018

Вы могли бы добавить фрагмент B поверх фрагмента A вместо , заменив - таким образом фрагмент A все еще будет жив, и все его данные не будут отсутствовать, и выне нужно было бы вызывать либо onCreate или onCreateView.

0 голосов
/ 04 ноября 2018

Чтобы избежать сохранения Observers в onCreateView, передайте getViewLifecycleOwner() как LifecycleOwner в LiveData observe метод.Это удалит предыдущий Observer, как только fragment s View будет уничтожено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...