Связь между взглядами в MVVM - PullRequest
0 голосов
/ 11 октября 2018

Я новичок в компонентах архитектуры Android / MVVM и хотел бы знать, как лучше всего реализовать связь между представлениями.

Итак, допустим, у меня есть классы A_View, A_View_Model, B_View и B_View_Model.Поскольку пользователь взаимодействует с A_View, мне нужно обновить B_View (например, отобразить новое изображение).Это нормально для A_View, чтобы получить ссылку на B_View_Model и вызвать метод, который вызовет LiveData, вызывая обновление B_View?Чтобы обобщить вопрос, нормально ли, чтобы View обращался к другим ViewModel для связи с другими View?Это необходимо?Разве я не могу просто использовать собственную ViewModel представления?

Также, как вы справляетесь, если хотите обновить несколько представлений.Создаете ли вы Controller / Presenter, который имеет ссылки на несколько моделей ViewModel, и соответственно вызываете их?

1 Ответ

0 голосов
/ 11 октября 2018

Если A и B являются братьями и сестрами, я ожидаю, что родитель предоставит viewModels для обоих и обработает любое взаимодействие между ними.Строго говоря, родитель будет делать это через свой собственный viewModel, имеющий ссылки на каждый из дочерних viewModel.

Вы можете реализовать интерфейс в Parent_View_Model, который запускает A_View_Model, уведомляя родителя о влиянии соответствующего ответа на B_View_Model.

Если B является подпредставлением A, тогда тот же шаблон будет верным, просто с A, действующим в качестве родителя.

...