именно LazyColumn. При быстром прокручивании происходят подвисания.
При этом отображение не сложное, для теста упростил до 7 Текстовых полей
При этом если вешаю логирование на момент инициализации item с его порядковым номером, иногда выскакивает сбой порядка, то есть идёт по порядку например до 172 потом почему-то 126, затем 108-125 и снова 173 и дальше
init item exercise 169
init item exercise 170
init item exercise 171
init item exercise 172
init item exercise 126
init item exercise 108
init item exercise 109
Делал несколькими разными способами описанными в документации, эффект один и тот же
Также попробовал полазить в коде NowAndroid и в нём при размещении кодом большого количества item'ов тоже заметил подвисания
Нашёл на stackoverflow описание бага, что сборка в релиз фиксит это, но это не помогло
Код моего Composable:
https://github.com/sheckspir/ExerciseTech/blob/training/app/trainingview/src/main/java/ru/fm4m/exercisetechnique/trainingview/ui/onetraining/OneTrainingScreen.kt#L75-L127
В общем-то вопрос, это я что-то не так делаю(и что тогда?) или это норм для LazyColumn?
Где key?
Было такое подозрение, ставил и это не помогло. Судя по описанию этого поля, если оно идёт null (по дефолту), то порядок и есть ключ. В моей реализации это было бы ок
Может состояние вынеси в другую композбл функцию чтобы не было лишних рекомпозиций
Да, я для упрощения просто это сейчас так закомитил, чтобы вопрос ссылками не покрывать. Так конечно это в отдельной функции, но хорошая мысль, её можно вполне разбить ещё, возможно это поможет
У тебя два состояния в одной функции и эта функция соответственно стейтфул, если стейт меняется, то все сразу пересоздается, я все же грешу на ключи
Хорошо, спасибо попробую изменить, не получится приду ещё раз с вопросом)
Обсуждают сегодня