с вложенными объектами. На каждый объект создается Switch, так же их нужно разделить по группам. Нужно отслеживать переключение Switch'ей. Включено может быть максимум 2 (т.е. если включается 3й - нужно отключить 1й)
Как бы Вы сделали такой кейс с управлением view из ViewModel?
а что за Switch?
на ui создается адаптер со свичами, из MVVM прилетает текущий стейт с состояниями каждого свитча и если нужно мы что-то выключаем. Всей логикой занимается или MVVM или бизнес логика (тут на любителя)
виджет такой, с логикой checkbox
т.е. перерисовывить все свитчи, если в одной из групп выбран 3й? (для отключения первого)
только в случае если оно изменилось
по задаче, если выбираем 3й, нужно выключить 1й
ну и делайте это в вашей логике, в чем проблема?
в избыточной нагрузке для такой примитивной задачи
это проще сделать через единый стейт, как в MVI. Т.е. в лайвдате например лежит текущий стейт в виде data классса, в который ханосятся все изменения в UI.
так оно поменялось, как Вы во всем списке обновите только единственный Switch?
можно наверное взять их в группу свичей, и включать и выключать их, не понмю уже, ничего перерисовывать не нужно
как формируется стейт я понимаю. Вопрос больше о том как передать UI точечное изменение (без перерисовки всего списка)
я потому сразу написал про адаптер или берете свитч проверяете его текущее состояние, если он включен, выключаете его
включаются и выключаются конкретные свичи в пределах группы свичей
т.е. в адаптере еще дифы писать?
ну конечно
тоже вариант. Благодарю
у меня задача решена эта. Я думаю как это в mvvm сделать, минимальными затратами
юзер поставил птичку - в ВМ улетел новый стейт с проставленной птичкой. На этот стейт вы подписаны в активити и смотрите - если такая-то конфигурация стейта теперь, то нужно снять птичку с первого, или не трогать ничего
Вы по сути тоже предлагаете фильтрацию в адаптере?
не знаю что вы называете адаптером, но да, логику обработки стейта в активити придется писать
Обсуждают сегодня