определенном действии пользователя может добавиться вторым (после stickyHeader) новый элемент. Для списка использую Paging, данные тяну из Room. Проблема такая: как лучше добавлять этот элемент, или как лучше сообщать пагингу, что у нас появился новый элемент, не перерисовывая весь список через invalidate у DataSource? Заранее спасибо за любую помощь, предложения или наводки
Я бы использовал diffutil, если ещё не используется пол капотом само
diffutil в compose? я что-то явно упустил
Те повесил бы слушатель на room на изменения, а для оптимизации каждое обновление состояния сравнивал с текущим и применял только изменения
окей, а что делать при изменении? перерисовка списка это довольно тяжело да и почти все AnimatedContent срабатывающие почему-то
Я сейчас выскажу глупое предположение, прошу поправить меня если я не прав или подтвердить мои слова. Если я правильно понимаю что происходит, то беспокоиться об этом не стоит. Отрисовыватся два раза не будет. Компоуз самостоятельно понимает какие элементы изменились и отрисовывает только их. По аналогии с virtual dom
А вот animated это проблема
Да, судя по срабатыванию AnimatedContent все элементы переиспользуются, но пролаг ощущается так или иначе
Пролаг в списках это нормально, у меня просто списки лагают, без ничего. В релизной сборке все отлично, попробуй
Все бы ничего, если бы пролагов не было на релизной сборке 🙂 Как я уже успел понять, если одновременно с анимацией открытия/закрытия экрана на одном из экранов отрисовывать список (даже если из простых текстов), то будет фриз, даже на релизе
Обсуждают сегодня