Как правильно задать цвет для колёсика в swipeRefreshLayout в проекте на MVVM?
Изучаю компонент swipeRefreshLayout для android. У него есть метод setColorSchemeResources() для изменения цвета колёсика загрузки. В каком классе использовать этот метод в проекте на MVVM (kotlin)? Прям в лоб прописывать этот метод во view или устанавливать цвет во viewModel, а потом как-то об этом сообщать во вьюху?
Ответы (1 шт):
ViewModel больше предназначена для хранения данных, который должны жить на протяжении жизненного цикла View.
цветовые или какие-то базовые настройки - задача самой View.
НО! далее оффтоп...
кто вам запрещает создавать классы, которые будут использоваться для базовой настройки View и вынести туда мусор?
поясню...
у меня были кастомные кнопки навигации, который меняли свой цвет в зависимости от того, на каком я нахожусь Фрагменте.
кроме как из кнопок навигации в эти фрагменты можно было попасть и другим путем.
Цель: написать слушатель фрагментов. и в зависимости от того, какой сейчас фрагмент - все кнопки навигации в базовое состояние. кнопку текущего фрагмента - подсветить.
Весь код занимается 80 строк. и это задача View. но все эти 80 строк - один большой логический блок. Я создал отдельный класс, где описал всю это логику, и одной строчкой подключил ее к Активити.
и больше это нигде в проекте не используется и не будет! лишь в одном месте.
но визуально - это выглядит понятно:
- есть класс, который отвечает за навигацию и стиль кнопок этой навигации
- в самой Активити это лишь 1 строчка кода
к чему этот текст? к тому что архитектура MVVM / MVC / MVP - это, в первую очередь, советы(!) как лучше структурировать работу с данными.
То что вы спросили - это дело View и к архитектуре не относится.
Но если у вас буду встречать большие, но общие по логике, блоки кастомизации - не стоит их хранить во View.