ListView: выборка деталей с помощью FutureBuilder приводит к сбойному поведению
У меня есть ListView, и я использую ListView.builder, чтобы лениво заполнять список, когда дети становятся видимыми.
Тем не менее, элементы также должны отображать дополнительный контент, который я хочу получить лениво.
Для этого я создаю http-get-future в child-builder и передаю его в FutureBuilder, который отображает дополнительный контент, как только Future завершает работу.
Тем не менее, даже если я кеширую http-get-futures, весь список выглядит сбойно, поскольку элементы перестраиваются, когда они снова становятся видимыми, и FutureBuilder отображает всегда один кадр ожидания без каких-либо данных ("потому что нет способа синхронной проверки если будущее уже завершено ", - как говорят документы Флаттера).
Что я должен изменить?
2 ответа
Я нашел решение:
Вместо непосредственного использования Future в FutureBuilder, я помещаю ValueNotifier в кеш, который устанавливается внутри функции then Future, и заменяю FutureBuilder на ListenableBuilder.
ListenableBuilder не имеет проблемы с пустой рамкой...