LazyColumn дёргается на 1000+ элементов — куда копать в Compose?

Теги: #VPN
Рейтинг: 56.6% · 5 голосов
Разработка под iOS и Android: Swift, SwiftUI, Kotlin, Jetpack Compose, Flutter, React Native, публикация в App Store и Google Play, оптимизация приложений.
Ответить
Аватара пользователя
olga5248
Сообщения: 1
Зарегистрирован: Пт май 15, 2026 8:01 pm

LazyColumn дёргается на 1000+ элементов — куда копать в Compose?

Сообщение olga5248 »

Лента на LazyColumn, элементов под пару тысяч, при скролле заметные фризы и подлагивания. Профайлил Layout Inspector — счётчик рекомпозиций крутится как бешеный. С чего начать оптимизацию?
👍 ❤️ 🔥 😄 🤔1
Аватара пользователя
anna_data53
Сообщения: 6
Зарегистрирован: Пн май 11, 2026 1:21 am

Re: LazyColumn дёргается на 1000+ элементов — куда копать в Compose?

Сообщение anna_data53 »

Первое и главное — ключи. items(list, key = { it.id }). Без ключей обновление 1000 элементов это сотни мс, с ключами падает в разы. Если ещё не сделал — сделай прямо сейчас и перемерь.
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
anna_qa
Сообщения: 3
Зарегистрирован: Вт май 19, 2026 2:02 am

Re: LazyColumn дёргается на 1000+ элементов — куда копать в Compose?

Сообщение anna_qa »

Плюс contentType если у тебя в ленте разные типы карточек. Compose тогда переиспользует композаблы по типу, а не пересоздаёт. На смешанных лентах разница ощутимая.
👍 ❤️1 🔥2 😄 🤔
Аватара пользователя
savva2867
Сообщения: 13
Зарегистрирован: Чт май 14, 2026 10:46 am

Re: LazyColumn дёргается на 1000+ элементов — куда копать в Compose?

Сообщение savva2867 »

@kotik2000 ключи есть, id уникальные. Рекомпозиции всё равно сыпятся. Грешу на то что в item прокидываю нестабильную дата-классу со списком внутри.
👍1 ❤️ 🔥 😄1 🤔
Аватара пользователя
julia_vue24
Сообщения: 9
Зарегистрирован: Вт май 12, 2026 3:36 am

Re: LazyColumn дёргается на 1000+ элементов — куда копать в Compose?

Сообщение julia_vue24 »

@android_dev вот оно. List внутри дата-класса делает её unstable, и весь айтем рекомпозится на любой чих. Оберни в ImmutableList из kotlinx.collections.immutable или пометь @Immutable, и читай состояние лямбдой а не значением.
👍2 ❤️ 🔥1 😄 🤔
Аватара пользователя
liza_code84
Сообщения: 1
Зарегистрирован: Сб май 16, 2026 11:47 am

Re: LazyColumn дёргается на 1000+ элементов — куда копать в Compose?

Сообщение liza_code84 »

И не забудь мерить в release-сборке с включённым R8, в debug Compose всегда тормозит и пугает. Половина паник-постов про лаги это замеры в дебаге.
👍1 ❤️ 🔥 😄2 🤔
Аватара пользователя
cachego9376
Сообщения: 22
Зарегистрирован: Вт май 12, 2026 2:46 pm

Re: LazyColumn дёргается на 1000+ элементов — куда копать в Compose?

Сообщение cachego9376 »

derivedStateOf тоже глянь, если у тебя есть производное состояние типа isScrolledToTop. Без него пересчёт идёт на каждый пиксель скролла.
👍 ❤️1 🔥1 😄 🤔
Аватара пользователя
svetlana_pro
Сообщения: 1
Зарегистрирован: Вт май 19, 2026 8:00 pm

Re: LazyColumn дёргается на 1000+ элементов — куда копать в Compose?

Сообщение svetlana_pro »

Завернул в ImmutableList, починил стабильность, перемерил в release — фризы ушли, скролл гладкий. Спасибо, дело реально было в unstable-параметре.
👍1 ❤️ 🔥1 😄1 🤔
Ответить
Поделиться темой: ✈ Telegram VK

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость