Есть экран со списком, на который в любой момент при

определенном действии пользователя может добавиться вторым (после stickyHeader) новый элемент. Для списка использую Paging, данные тяну из Room. Проблема такая: как лучше добавлять этот элемент, или как лучше сообщать пагингу, что у нас появился новый элемент, не перерисовывая весь список через invalidate у DataSource? Заранее спасибо за любую помощь, предложения или наводки

9 ответов

19 просмотров

Я бы использовал diffutil, если ещё не используется пол капотом само

4nk1r-#NoWar Автор вопроса
Nikita Kulikov
Я бы использовал diffutil, если ещё не используетс...

Те повесил бы слушатель на room на изменения, а для оптимизации каждое обновление состояния сравнивал с текущим и применял только изменения

4nk1r-#NoWar Автор вопроса
Nikita Kulikov
Те повесил бы слушатель на room на изменения, а дл...

окей, а что делать при изменении? перерисовка списка это довольно тяжело да и почти все AnimatedContent срабатывающие почему-то

4nk1r #NoWar
окей, а что делать при изменении? перерисовка спис...

Я сейчас выскажу глупое предположение, прошу поправить меня если я не прав или подтвердить мои слова. Если я правильно понимаю что происходит, то беспокоиться об этом не стоит. Отрисовыватся два раза не будет. Компоуз самостоятельно понимает какие элементы изменились и отрисовывает только их. По аналогии с virtual dom

4nk1r-#NoWar Автор вопроса
Nikita Kulikov
Я сейчас выскажу глупое предположение, прошу попра...

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

4nk1r #NoWar
Да, судя по срабатыванию AnimatedContent все элеме...

Пролаг в списках это нормально, у меня просто списки лагают, без ничего. В релизной сборке все отлично, попробуй

4nk1r-#NoWar Автор вопроса
Nikita Kulikov
Пролаг в списках это нормально, у меня просто спис...

Все бы ничего, если бы пролагов не было на релизной сборке 🙂 Как я уже успел понять, если одновременно с анимацией открытия/закрытия экрана на одном из экранов отрисовывать список (даже если из простых текстов), то будет фриз, даже на релизе

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

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

Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
5
А в каком формате фреймы? Сам формат сейчас придумываешь, или что-то готовое нужно распарсить?
Okhsunrog
5
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Раз начали говорить про embassy, то присоединюсь со своими парой вопросов. 1) Есть ли сопоставимые аналоги для асинхронного кода в emdebbed? 2) Можно ли внутри задач embassy ...
NI_isx
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Карта сайта