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

Ребят, использую скол контроллер для добавления элементов в ListView.builder (lazy

load), однако изза setState в listener при скроллинге приложение начинает логать, как избежать этого ? что можно использовать вместо setState?

5 ответов

22 просмотра

setState просто ставит галочку, что ваш виджет сделает ребильд, при чем вызывается синхронно ничего бтсрей этого метода не будет в целом) не там проблему ищите) у вас код какой то странный вы что будите для всех данных рассчитывтаь пиксели? а как же разыне жкраны например? или размеры элементов или если новый элемент добавилте опять переписывать код? у скроллконтроллера есть куча параметров, например extentAfter - который говорит сколько пикселей осталось до конца вы хотите подгружать. напрмиер когда стало менее 500 пикселей до конца, можете делать проверку типа if (_ctrl.extentAfter < 500) { подгрузка } 1 раз условие прописать так же все хорошо, если у вас данные уже есть, но как правило их надо откуда то доставить, например из сети или бд локальной, мгновенно это все не отработает, при скролле может вызываться после запроса данных нужно поставить флаг загрузки, чтоб повторно один и тот же запрос не улетал

а условия для extentAfter < 500 в инитстейте прописывать лучше?

Миша
а условия для extentAfter < 500 в инитстейте пропи...

ну я делал себе вообще обертку, чтоб был виджет у которого етсь методы типа onNextPage и он дергался для запроса новый порции внутри была реализована логика, напмреир выводился вниху линейный индикатор что грузятся новые данные и тд на сколл подписка как и на все) в инитстейт да делал но потом бросил городить велосипеды и взял офигенную либу, кстати рекомендованную флаттером, и радуюсь)

Alexandr Drobyshev
ну я делал себе вообще обертку, чтоб был виджет у ...

а, ну, да, уже же все написано :) Спасибо за полезный пакет:)

Если будет использовать Bloc(например) можешь все это в другом файле писать. Ты разграничишь это все. Будет удобно)

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

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

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
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
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта