Listview.builder создает дубликаты на флаттер - PullRequest
0 голосов
/ 02 апреля 2020

Я создаю динамический c список виджетов, но каждый раз, когда я добавляю другой, он дублирует, когда я добавляю 2 элемента, он становится 4, когда я добавляю 3, он становится 9 и так далее .. Я искал по net возможные причины, и я думаю, что он очень похож на этот Flutter JSON дублирующий индекс Я думаю, что что-то упустил в этом коде, я не знаю куда поставить р, помогите пожалуйста

child: Container(
      height: 250,
      child: new ListView.builder(
          physics: ClampingScrollPhysics(),
          shrinkWrap: true,
          scrollDirection: Axis.horizontal,
          itemCount: newList.length,
          itemBuilder: (context, index) {

            final r = newList[index];

            return new Row(
              children: newList,
            );
          }),
    ),
  );

вот мой востребованный новый список:

List<Widget> newList = [];

1 Ответ

1 голос
/ 02 апреля 2020

У вас есть itemCount списка, установленного на длину newList. Код itemBuilder выполняется x раз, когда длина равна. Так что в itemBuilder вам нужно передать индекс в newList, который вы показываете, иначе он покажет весь список.

child: Container(
          height: 250,
          child: new ListView.builder(
              physics: ClampingScrollPhysics(),
              shrinkWrap: true,
              scrollDirection: Axis.horizontal,
              itemCount: newList.length,
              itemBuilder: (context, index) {

                final r = newList[index];

                return new Row(
                  children: newList[index],
                );
              }),
        ),
      );
...