`在我的代码中,我制作了动态文本小部件,侧面有带有最小化图标的按钮。
每次我按下按钮以使计算发生在与图标旁边不同的文本上时,我的问题都是这样。
如何将它们制作在与文本同一侧的按钮中?
这是与按钮有关的代码
for (int data in dynamicData)
DynamicItemWidget(
data: data,
onDelete: () {
setState(() {
if (data>1){
dynamicData.remove(data);
data = data -2;
dynamicData.add(data);
}
else {
dynamicData.remove(data);
}
});
},
),
// Add button to dynamically add widgets
ElevatedButton(
onPressed: () {
setState(() {
dynamicData.add(5);
});
},
child: Text('Add Colony'),
),
],
),
//
class DynamicItemWidget extends StatelessWidget {
final int data;
final VoidCallback onDelete;
const Dyna`micItemWidget({required this.data, required this.onDelete});
@override
Widget build(BuildContext context) {
return ListTile(
title: Text("$data"),
trailing: IconButton(
icon: Icon(Icons.minimize),
onPressed: onDelete,
),
);
}
}
`
尝试为每个文本
index
存储 data
,并在删除时删除 index
处的值,而不是 dynamicData.remove(data)
。
像dynamicData.removeAt(index)
之类的东西
本质上,每次删除或添加时,您的代码都会重新生成一个新列表,这可能不是您想要的。
我不遵循您的删除按钮逻辑,但据我了解,您想通过点击最小化
Text
来删除相应的Icon
小部件,在单击添加殖民地后生成。
您可以添加更多代码以更好地解决问题。