214 похожих чатов

Интересный вопрос к любителям MVVM. Задача: С сервера приходит список групп

с вложенными объектами. На каждый объект создается Switch, так же их нужно разделить по группам. Нужно отслеживать переключение Switch'ей. Включено может быть максимум 2 (т.е. если включается 3й - нужно отключить 1й)
Как бы Вы сделали такой кейс с управлением view из ViewModel?

22 ответов

23 просмотра

а что за Switch?

на ui создается адаптер со свичами, из MVVM прилетает текущий стейт с состояниями каждого свитча и если нужно мы что-то выключаем. Всей логикой занимается или MVVM или бизнес логика (тут на любителя)

Jorik-Fat Автор вопроса
Pêcheur
а что за Switch?

виджет такой, с логикой checkbox

Jorik-Fat Автор вопроса
Dr Dre
на ui создается адаптер со свичами, из MVVM прилет...

т.е. перерисовывить все свитчи, если в одной из групп выбран 3й? (для отключения первого)

Jorik-Fat Автор вопроса
Dr Dre
только в случае если оно изменилось

по задаче, если выбираем 3й, нужно выключить 1й

Jorik Fat
по задаче, если выбираем 3й, нужно выключить 1й

ну и делайте это в вашей логике, в чем проблема?

Jorik-Fat Автор вопроса
Dr Dre
ну и делайте это в вашей логике, в чем проблема?

в избыточной нагрузке для такой примитивной задачи

Jorik Fat
по задаче, если выбираем 3й, нужно выключить 1й

это проще сделать через единый стейт, как в MVI. Т.е. в лайвдате например лежит текущий стейт в виде data классса, в который ханосятся все изменения в UI.

Jorik-Fat Автор вопроса
Dr Dre
вот тут

так оно поменялось, как Вы во всем списке обновите только единственный Switch?

Jorik Fat
так оно поменялось, как Вы во всем списке обновите...

можно наверное взять их в группу свичей, и включать и выключать их, не понмю уже, ничего перерисовывать не нужно

Jorik-Fat Автор вопроса
Pêcheur
это проще сделать через единый стейт, как в MVI. Т...

как формируется стейт я понимаю. Вопрос больше о том как передать UI точечное изменение (без перерисовки всего списка)

Jorik Fat
так оно поменялось, как Вы во всем списке обновите...

я потому сразу написал про адаптер или берете свитч проверяете его текущее состояние, если он включен, выключаете его

Jorik Fat
как формируется стейт я понимаю. Вопрос больше о т...

включаются и выключаются конкретные свичи в пределах группы свичей

Jorik-Fat Автор вопроса
Jorik-Fat Автор вопроса
Dr Dre
ну конечно

тоже вариант. Благодарю

Jorik-Fat Автор вопроса
Pêcheur
screenshot включаются и выключаются конкретные свичи в предел...

у меня задача решена эта. Я думаю как это в mvvm сделать, минимальными затратами

Jorik Fat
у меня задача решена эта. Я думаю как это в mvvm с...

юзер поставил птичку - в ВМ улетел новый стейт с проставленной птичкой. На этот стейт вы подписаны в активити и смотрите - если такая-то конфигурация стейта теперь, то нужно снять птичку с первого, или не трогать ничего

Jorik-Fat Автор вопроса
Pêcheur
юзер поставил птичку - в ВМ улетел новый стейт с п...

Вы по сути тоже предлагаете фильтрацию в адаптере?

Jorik Fat
Вы по сути тоже предлагаете фильтрацию в адаптере?

не знаю что вы называете адаптером, но да, логику обработки стейта в активити придется писать

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта