Я начал изучать MVVM с LiveData на Android. Думаю, отображение и обновление данных basi c мне понятно. Topi c, который я изо всех сил пытаюсь найти, - это управление пользовательским интерфейсом.
Допустим, у меня есть базовый c UI, например форма. Он имеет несколько EditTextView для ввода данных. В конце также есть переключатель. Если это ON , показывается еще несколько EditTextView для заполнения. Когда он OFF , конечно, они ушли.
Мой вопрос, где реализовать этот logi c?
В коде действия / фрагмента? Тогда бизнес-логи c будут задействованы в части VIEW MVVM (что мне не очень нравится).
В ViewModel? Тогда бизнес-лог c будет существовать, скажем, в кэше данных . Таким образом, мне пришлось бы создать кучу boolean
геттеров в ViewModel, которые вычисляют значения для отдельных видимости View. Затем в моем Activity в блоке подписки для изменения LiveData мне нужно прочитать все эти значения и установить видимость для представлений один за другим.
В отдельном Service / Helper / Утилитарный класс? Это было бы то же самое решение, что и # 2, только logi c, извлеченное из ViewModel.
Какая здесь лучшая практика? Тем не менее, тот же вопрос может возникнуть при проверке правильности ввода пользователем c (и я предполагаю, что существует ряд таких областей).