Здравствуйте, вопрос по флаттеру. Имеется ListView внутри StatelessWidget. В элементе этого ListView хочу назначать карточке случайный цвет. Для этого назначил ключ ValueKey(
myElement.id) (значения ключей уникальны) для корневого элемента списка (он StatefulWidget), а сам цвет инициализирую в initState(). Но когда я пролистываю список, цвета сбрасываются. И в консоли вижу, что для каждого элемента повторно вызывается initState(), и соответственно цвет назначается заново.
Ранее пробовал сделать также в ListView.builder(), но прочитал что он такое не поддерживает изначально. Поэтому пробую в обычном ListView, но и тут какое-то странное поведение initState() — по докуметнации должен вызываться только один раз для стейта, а тут постоянно при скролле.
Подскажите, почему происходит такое поведение и как можно от него избавиться?
Код:
https://gist.github.com/DVegasa/42714ed4f6ac90e6c7aa213fcd9260f7Вывод консоли:
https://gist.github.com/18341950e5ae9bb61d8494ec5612a806