我有一个生成列表的列表视图生成器
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(????));
});
} }
我正在尝试找出如何删除它。
当此列表为文本列表时,我可以基于下一个添加和删除。但是,现在正在将一个容器添加到列表中,我想在该索引处或整个容器中删除该项目。
答案 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()));