gpt4 book ai didi

dart - 无法删除添加的列表元素

转载 作者:IT老高 更新时间:2023-10-28 12:45:09 25 4
gpt4 key购买 nike

我使用以下方法添加了一个列表元素:

listToAddTo.add(italianFood());

但是,当我尝试使用以下方法删除相同的元素时:

listToAddTo.remove(italianFood());

它不起作用。

我试过使用带有参数 item == italianFood() 的 removeWhere 方法,带有 item != italianFood() 参数的 retainWhere 方法,以及带有 listToAddTo.indexOf(italianFood()) 参数的 removeAt 方法,然而,这些似乎都不起作用。

当我尝试打印列表时,我得到以下结果:`

ListView(
scrollDirection: vertical,
primary: using primary controller,
scrollPhysics: AlwaysScrollableScrollPhysics,
shrinkWrap: shrink-wrapping
)

上面的方法有这个结果好像也没有效果。

所需代码如下:

  List listToAddTo = [];

ListView italianFood() {
return ListView(
shrinkWrap: true,
children: <Widget>[
listEntry(
'Fast Food Nana',
'Mon - Sun 06:00 - 04:00',
Container(
child: IconButton(
icon: Icon(
Icons.motorcycle,
size: 30.0,
),
),
),
IconButton(
icon: Icon(
Icons.navigation,
size: 30.0,
),
),
),
],
);


Container filterItem(String label, value, onChanged) {
return Container(
decoration: BoxDecoration(color: Colors.white),
child: CheckboxListTile(
value: value,
title: Text(label),
onChanged: onChanged,
),
);



bool isTrue = false;

Widget build(BuildContext context) {
return Stack(
children: <Widget>[
Container(
margin: const EdgeInsets.only(top: 45.0),
child: ListView.builder(
itemCount: listToAddTo.length,
itemBuilder: (BuildContext context, int Index) {
return (listToAddTo[Index]);
},
),
),
ExpansionTile(
title: Text('Filters'),
children: <Widget>[
filterItem(
'Italian',
isTrue,
(bool value) {
setState(() {
if (isTrue == false) {
listToAddTo.add(italianFood());
isTrue = !isTrue;
} else {
listToAddTo.removeAt(listToAddTo.indexOf(italianFood()));
isTrue = !isTrue;
}
});
print(listToAddTo);
print(italianFood());
},
),
],
),
],
);

最佳答案

你不能删除它,因为它们是不同的对象。

每次使用 italianFood() 时,都会创建一个新的 class 实例。

创建一个全局变量:

 ListView _myItalianFood;

实例化:

在你的添加方法中:

  _myItalianFood = italianFood();
listToAddTo.add(_myItalianFood);

删除:

 listToAddTo.remove(_myItalianFood);

关于dart - 无法删除添加的列表元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52230287/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com