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

И как ты обойдёшься без маппинга данных? Если у тебя

в вьюмодели список других моделей - ты обречён на постоянный маппинг данных.

15 ответов

31 просмотр

Ну вроде я понял, спасибо

Кирилл-Романенко Автор вопроса
Dmitry Levchenko
Ну вроде я понял, спасибо

Да не за что. Можешь поиграться с маппингом на бекграунде, кстати, если не хочешь загружать мейн тред. Запускай асинхронную таску, меняй тред, мапь списки, пуш новый список в ливдату через postValue. Только этот метод немного опасен, почитай про него. Данные не всегда доходят. Я бы вообще рекомендовал отказаться от ливдаты в сторону, например, StateFlow.

Кирилл-Романенко Автор вопроса
Dmitry Levchenko
Ну вроде я понял, спасибо

Ну или можешь через setValue, если будешь запускать асинхронную задачу в мейне, внутри неё запускай асинхронную таску в бекграунде, потом дождись результат и отправь его в ливдату.

Кирилл Романенко
Ну или можешь через setValue, если будешь запускат...

Можно и через корутины ведь по идеи. А насчет ливдаты, я это чисто чтоб тестовое сделать изучаю

Кирилл-Романенко Автор вопроса
Dmitry Levchenko
Можно и через корутины ведь по идеи. А насчет ливд...

Да, можно через корутины. Но тут надо смотреть предметно, действительно ли тебе оно надо. Вся эта асинхронщина происходит не мгновенно, поэтому может быть такое, что "асинхронный" маппинг будет работать дольше. Всё зависит от того, сколько данных, как часто маппятся и т.д.

Кирилл Романенко
Да, можно через корутины. Но тут надо смотреть пре...

Привет, ещё вопрос возник,как думаешь, маппинг стейтов в айтемы лучше делать внутри viewModel или в активити/фрагменте?

Кирилл Романенко
В вьюмодели

Слушай я вроде сделал всё через маппинг и diffUtils, но теперь при нажатии на радио кнопку в айтеме видно небольшое "моргание" айтема,хотя пересоздаётся только он. Это нормально?

Кирилл-Романенко Автор вопроса
Dmitry Levchenko
Слушай я вроде сделал всё через маппинг и diffUtil...

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

Кирилл Романенко
Моргание какого рода? Когда ты сеттишь предыдущее ...

ну когда нажимаю на радиокнопку, виджеты внутри айтема белеют на секунду и обратно,мб анимация такая. Я не понял насчёт предыдущего значения, я при нажатии просто вызываю колбек в фрагменты,там вызываю метод из вьюмодели, который обновляет массив стейтов, потом создаётся нвой список айтемов и пихается в livedata<ArrayList<Item>> далее в differ поступает новый список,где только один элемент отличается, и только он промаргивает

Кирилл Романенко
Гугли payload

Шикос, всё работает, даже не знал о видах связывания. Ещё раз спасибо.

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
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
Карта сайта