Как правильно задать цвет для колёсика в swipeRefreshLayout в проекте на MVVM?

Изучаю компонент swipeRefreshLayout для android. У него есть метод setColorSchemeResources() для изменения цвета колёсика загрузки. В каком классе использовать этот метод в проекте на MVVM (kotlin)? Прям в лоб прописывать этот метод во view или устанавливать цвет во viewModel, а потом как-то об этом сообщать во вьюху?


Ответы (1 шт):

Автор решения: Wlad

ViewModel больше предназначена для хранения данных, который должны жить на протяжении жизненного цикла View.
цветовые или какие-то базовые настройки - задача самой View.
НО! далее оффтоп...
кто вам запрещает создавать классы, которые будут использоваться для базовой настройки View и вынести туда мусор?
поясню...

у меня были кастомные кнопки навигации, который меняли свой цвет в зависимости от того, на каком я нахожусь Фрагменте.

кроме как из кнопок навигации в эти фрагменты можно было попасть и другим путем.
Цель: написать слушатель фрагментов. и в зависимости от того, какой сейчас фрагмент - все кнопки навигации в базовое состояние. кнопку текущего фрагмента - подсветить.

Весь код занимается 80 строк. и это задача View. но все эти 80 строк - один большой логический блок. Я создал отдельный класс, где описал всю это логику, и одной строчкой подключил ее к Активити.

и больше это нигде в проекте не используется и не будет! лишь в одном месте.
но визуально - это выглядит понятно:

  • есть класс, который отвечает за навигацию и стиль кнопок этой навигации
  • в самой Активити это лишь 1 строчка кода

к чему этот текст? к тому что архитектура MVVM / MVC / MVP - это, в первую очередь, советы(!) как лучше структурировать работу с данными.
То что вы спросили - это дело View и к архитектуре не относится.
Но если у вас буду встречать большие, но общие по логике, блоки кастомизации - не стоит их хранить во View.

→ Ссылка