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

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

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

15 ответов

28 просмотров

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
1
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Карта сайта