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

Как обновлять только 1 элемент в ListView? не весь список

18 ответов

21 просмотр

Зачем?

перерисовывается не весь список, а только 1 элемент

Ivan-B Автор вопроса
Jorik Fat
перерисовывается не весь список, а только 1 элемен...

если я в списке в середине, нажал на кнопку в элементе - ушло на сервер сервер прислал новый список setState перерисовывает весь список во всяком случае я уже не в середине на самом верху списка

Ivan B
если я в списке в середине, нажал на кнопку в элем...

setState перерисовывает (не путать с build) весь список только если его предварительно очищать

Jorik Fat
перерисовывается не весь список, а только 1 элемен...

ну вообще сет стейт достаточно просто работает, он просто перерисовывает текущий виджет и не больше. Он понятие не имеет о том что ожидается перерисовка конкретного элемента в списке по каким то не очевидным для него признакам. Поэтому ответ на вопрос проще - никак. Могу конечно ошибаться. Я помню что во vue например ключи было полезно проставлять, чтобы вью понимал что пора какой то кусок в цикле перерисовтаь. Но это не работало так что изменился уже отрисованый элемент в своих свойствах и вью благодаря ключу обновлял его. Это работало для случаев когда на его место встает уже совсем иной объект уже совсем с другим ключем

build != render проверять перерисовку через log'и - некорректно, нужно проверять через repaint в DevTools

Jorik Fat
build != render проверять перерисовку через log'и ...

так а сет стейт то по итогу что делает?

David
так а сет стейт то по итогу что делает?

помечает поддерево для rebuild'а все дерево перестроится, но не обязательно перерисуется

Jorik Fat
помечает поддерево для rebuild'а все дерево перес...

ну да, если дерево не отличается от прошлого, так?

Jorik Fat
оно может отличаться неполностью

то что не отличается вроде по возмжности не перерисовывается

Jorik Fat
вот и я об этом

в любом случае дать сигнал перерисовать конкретный элемент списка вроде как нельзя. Или можно?

David
в любом случае дать сигнал перерисовать конкретный...

вообще можно (засунуть в Builder или его потомка), но это бессмысленно

David
не очень понимаю о чем речь

!!!НЕ НАДО ТАК ДЕЛАТЬ!!! каждый элемент списка засунуть в BlocBuild'er и где-то во ViewModel'е держать List<Cubit>

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

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

@MrMiscipitlick А можешь макрос написать, который будет вычислять смещение относительно переданных меток? Просто .label1-.label2, и вернуть значение.
КТ315
35
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
Подобного рода ;Следующие три строки это директивы ассемблера, ;которые можно не задавать, т.к.работаем в Visual Studio. ;Символ ";" - это начало однострочного комментария ...
Егор Анелькин
3
Кто-нибудь знает почему SPM клонирует репо целиком? Некоторые репы просто огромные, как та же swift-syntax которая нужна для использования макросов. Сначала подумал, что это...
iMike
6
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
Подскажите, где смотреть результат выполнения программы? Код: ;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, станда...
Егор Анелькин
5
еще вопрос, допустим мы создадим char массив из 10 элементов и присвоим ему через сканф 10 символов. и выведем все символы. Хотел спросить последний элемент /0 будет включать...
Anthem
11
открыть папку в проводнике: 1 - ShellExecute 2 - ExecuteProcess 3 - OpenDocument что лучше выбрать?
Alexey Kulakov
12
;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, стандартный ;вызов процедуры ;option casemap:no...
Егор Анелькин
1
Карта сайта