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

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

18 ответов

50 просмотров

Зачем?

перерисовывается не весь список, а только 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>

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

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

#include <stdio.h> #include <stdlib.h> #include <time.h> void mass_first_generate(int mass[5][7]) {     for (int N = 0; N < 5; N++) {         for (int A = 0; A < 7; A++) {   ...
Чувак
6
Всем привет! Решаю 99 OCaml Problems и столкнулся со следующей проблемой (прошу палками не забивать, я OCaml практически не трогал до этого момента): open OUnit2 let create_...
К|/|pи/\/\ 6е3yглbIи
2
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
возможно ли как-то передать в электрон или таури медиа поток с рендера 2д движка? двиг запускается как dll, а дальше надо как-то отправлять рендер кодировать не подходит, зр...
Kyle Nekto
7
https://www.linkedin.com/posts/ugama-benedicta-kelechi-codergirl-103041300_mobiledevelopment-fluttertraining-handsonlearning-activity-7263445699227254784-IdHB?utm_source=share...
CoderGirl
16
Помогите пожалуйста. Делаю систему плагинов. Проблема сейчас в такая: плагины загружаются в основном потоке. FLibHandle := SafeLoadLibrary(FFileName) Но нужно еще выполнить фу...
Илья 🤣
10
Ну вот просто даже давайте вот как. Какой нибудь конкретный кейс, можете в пример привести, где бч работает и приносит прикладную пользу, а не просто что бы было? Не крипту.
Alexander Andreev
22
объясните пожалуйста, почему функция не работает должным образом? вроде должно брать активное окно сравнивать его размер с размером экрана, и если есть совпадение = true прове...
JF
12
лучше скажите, причём тут паскаль?
Alexey Kulakov
36
У меня вопрос попроще, почти нубский: нужно заставить сайт эво 1.4.34 перевести с PHP 7.4 на 8.2. Понятное дело, что дополнения обновить-проверить, а с основной системой как ...
Вячеслав Кузьменко
5
Карта сайта