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

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

9 ответов

8 просмотров

Я бы использовал 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
Пролаг в списках это нормально, у меня просто спис...

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

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

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

что насчет пагинга? на осдеве непонятно(
Vi Chapmann 🪙
26
Вам не надоело оффтопить? Вот я вчера видел видосик, как из баллона делали мангал. 👻
Alex Sherbakov
4
Продолжая диалог про свифт в проде – сейчас возник вопрос в активном наборе бекендеров. В основном в нашей компании мы фанаты Java Spring и полностью ей довольны. Однако найм ...
Guseyn
27
if (user?.choseType === 'oneDay') { await ctx.reply( 'Добро пожаловать в команду «Магнита»! Правда, на один день ☺️ ', ); await ctx.s...
Kokni
1
Читаю сейчас [нет, уже больше не читаю!] курсовую о Булгакове, написанную, похоже, с помощью ChatGPT. Это удивительный психоделический опыт. Текст в основном написан в стиле б...
✨ Uni [🌊 В отпуске]
1
Всем привет! поделитесь, пож-та, как кто дебажил / решал проблему с 504 Time out ошибкой от nginx, когда стучишься на свой vapor сервер? в логах /var/log/nginx/error.log е...
Paul
24
что лучше для раста, Clion или IntellJ IDEA?
dbxty
11
Свободные программисты в чате есть? Нужны кто умеет в архитектурно сложные проекты на базе WordPress, по типу маркетплейсов, фотостоков и подобного. В идеале, конечно, найти к...
С
4
А вообще существует редактор (современный), который не позиционирует себя как "легковесный, удобный и расширяемый"?
Andrey Zgarbul
7
Я тут пытаюсь переработать архитектуру подсистемы памяти ядра во что-то осмысленное. Есть pmm, который создает набор range’ей(пока что только для ядра, потом для юзерспейса), ...
Evg Resh
19
Карта сайта