Flutter从另一个小部件中删除列表项

时间:2019-11-22 20:59:37

标签: flutter dart

我有一个生成列表的列表视图生成器

ListView.builder(
                itemCount: snapshot.length,
                itemBuilder: (context, index) {
                  return Tag(
                    callback: (list) => setState(() => hashList = list),
                    tag: snapshot[index].data["title"],
                    list: hashList,
                  );
                },
              )

然后,标记函数根据选择的项目将其添加到另一个列表,然后再次单击将其删除。

这是在Tag中选择的句柄功能

void _handleOnPressed() {
setState(() {
  isSelected = !isSelected;
  isSelected
      ? _animationController.forward()
      : _animationController.reverse();
  isSelected ? widget.list.add(
      Container(
        height: 30,
        color: Colors.green,
        child: Text(widget.tag, style: TextStyle(color: Colors.purple),),
      )): widget.list.removeAt(????));
});

} }

我正在尝试找出如何删除它。

当此列表为文本列表时,我可以基于下一个添加和删除。但是,现在正在将一个容器添加到列表中,我想在该索引处或整个容器中删除该项目。

1 个答案:

答案 0 :(得分:1)

您是否尝试过这种方式, 比较与原始列表匹配的标签,

int removeTagAt(){
for(int i=0;i<snapshot.lenght;i++)
{
if(widget.tag==snapshot[index])
return i;
}
}

然后打电话,

  Container(
        height: 30,
        color: Colors.green,
        child: Text(widget.tag, style: TextStyle(color: Colors.purple),),
      )): widget.list.removeAt(removeTagAt()));