如何对特定的动态widget进行计算?

问题描述 投票:0回答:1

`在我的代码中,我制作了动态文本小部件,侧面有带有最小化图标的按钮。

每次我按下按钮以使计算发生在与图标旁边不同的文本上时,我的问题都是这样。

如何将它们制作在与文本同一侧的按钮中?

这是与按钮有关的代码

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,
      ),
    );
  }
}


`

flutter
1个回答
0
投票

尝试为每个文本

index
存储
data
,并在删除时删除
index
处的值,而不是
dynamicData.remove(data)
。 像
dynamicData.removeAt(index)

之类的东西

本质上,每次删除或添加时,您的代码都会重新生成一个新列表,这可能不是您想要的。

我不遵循您的删除按钮逻辑,但据我了解,您想通过点击最小化

Text
来删除相应的
Icon
小部件,在单击添加殖民地后生成。

您可以添加更多代码以更好地解决问题。

© www.soinside.com 2019 - 2024. All rights reserved.