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

Кто сталкивался с плохим перформансом FlatList android ? все по документации,

касательно оптимизации.
Использую getItemLayout.

Список состоит из публикаций с медиа

Первое время дикие задержки перед срабатыванием событий клика + часто пустые пространства надолго зависают.
Все это в release mode, apk тоже.

Я так понял, FlatList не предназначен для больших списков с немалыми высотами у элементов(и это мягко еще сказано)...

8 ответов

22 просмотра

js поток может быть занят чем то другим + нужно мемоизировать ячейки обязательно и все пропы листа андроид на РН в целом медленнее - джависты как всегда рукожопы

Попробуй flashlist

FlatList имеет один целевой кейс - бесконечная лента постов с не очень быстрым скроллом. Как раз с крупными (в меру) элементами. Посмотрите в инспекторе сколько он реально элементов рендерит у вас за пределами окна вывода; отпрофилируйте js (грубо говоря, не нагружают ли скрытые компоненты JS поток)...

Dr1ver- Автор вопроса
Nikita Kovantsov
Попробуй flashlist

Мне нужен initialScrollIndex

Dr1ver- Автор вопроса
Gena Black
FlatList имеет один целевой кейс - бесконечная лен...

есть логика фетчинга внутри элемента списка. Очень много вызовов вижу через Redux profiler. Такова структура на беке, что приходится подгружать медиа по его айдишнику

Dr1ver
есть логика фетчинга внутри элемента списка. Очень...

Плохо... Лучше сделать так, чтоб любой элемент списка был максимально тупым и не ререндерился на любой чих, потому что сам виртуализованный список по своей сути айтемы постоянно перерендеривает (поддерживает подмножество в окне видимости), поэтому они там постоянно передергиваются, новые добавляются, старые удаляются (поэтому у них ещё внутреннего стейта не должно быть, привязанного к времени жизни айтема - сбрасываться будет). Итого, если хочется чтоб это быстро работало: 1. элементы должны ререндериться только если это реально необходимо 2. быть максимально тупыми (стейт где-то вовне должен лежать)

Dr1ver- Автор вопроса
Dr1ver
а что насчет recyclerlistview ?

Что он, что FlashList будут работать только с "оптимизированными" айтемами. FlatList пытается скрыть лаги делая большое "окно видимости", а эти наоборот уменьшают окно видимости пытаясь сберечь суммарно циклы процессора... Поэтому если айтемы не оптимальны, то с ними наоборот будут виднее пустые места, когда рендер не успевает за скроллом

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

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

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
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
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
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
Ребят в СИ можно реализовать ООП?
Николай
33
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Карта сайта