169 похожих чатов

Есть вопрос по Composable, он у меня яростно глючит, а

именно 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?

6 ответов

19 просмотров

Где key?

Карамышев Саша- Автор вопроса

Было такое подозрение, ставил и это не помогло. Судя по описанию этого поля, если оно идёт null (по дефолту), то порядок и есть ключ. В моей реализации это было бы ок

Карамышев Саша
Было такое подозрение, ставил и это не помогло. Су...

Может состояние вынеси в другую композбл функцию чтобы не было лишних рекомпозиций

Карамышев Саша- Автор вопроса
FirstName
Может состояние вынеси в другую композбл функцию ч...

Да, я для упрощения просто это сейчас так закомитил, чтобы вопрос ссылками не покрывать. Так конечно это в отдельной функции, но хорошая мысль, её можно вполне разбить ещё, возможно это поможет

Карамышев Саша
Да, я для упрощения просто это сейчас так закомити...

У тебя два состояния в одной функции и эта функция соответственно стейтфул, если стейт меняется, то все сразу пересоздается, я все же грешу на ключи

Карамышев Саша- Автор вопроса
FirstName
У тебя два состояния в одной функции и эта функция...

Хорошо, спасибо попробую изменить, не получится приду ещё раз с вопросом)

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

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

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
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
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Карта сайта