Удалить индексный пользовательский виджет из списка <Widget>во флаттере - PullRequest
0 голосов
/ 22 января 2019

У меня изначально пустой список виджетов в столбце.Теперь нажмите кнопку Другие виджеты. Я добавляю новый пользовательский виджет в _contactItems

   Column(
      children: _contactItems,
    )

 List<Widget> _contactItems = new List<CustomWidget>();



 _contactItems.add(newCustomWidget(value));

. Теперь предположим, что у меня есть 6 записей (6 пользовательских виджетов в столбце).Я пытаюсь удалить индексные записи (Пример. Я удаляю 3-ю запись, затем 1-ю запись. Виджеты столбцов (динамические виджеты) должны быть обновлены как _contactItems, обновляющиеся в setState())

Теперь в CustomWidget нажмите Я удаляю этот конкретный CustomWidget из столбца.

setState(() {
          _contactItems.removeAt(index);
        });

Также пробовал с

_contactItems.removeWhere((item) {
            return item.key == _contactItems[index].key;
          });

1 Ответ

0 голосов
/ 22 января 2019

Попробуйте это (при условии, что ключи виджетов Column имеют такой формат):

setState(() {
  this._contactItems.removeWhere((contact) => contact.key == Key("index_$index"));
});

Если это не решит вашу проблему, возможно, нам понадобится дополнительная информация.

...