gpt4 book ai didi

dart - 使用 Barcode Scanner 中的值在 flutter 中添加新值后,列表不会扩展

转载 作者:IT王子 更新时间:2023-10-29 06:44:13 26 4
gpt4 key购买 nike

我正在使用 Flutter 开发一个项目,我是新手。每次我扫描代码时,它都应该将新值添加到列表中。我试过这样做但不是添加新值,而是替换现有值。这是我的代码——

 List data = jsonDecode(snapshot.data.toString()) as List;
var values = new List<String>();

int x = data.length;
for (var i = 0; i < x; i++) {
var z = data[i]['id'];
print(barcode);

if (barcode == z) {
if (!values.contains(barcode)) {
values.add(z);
}

return new ListView.builder(
itemCount: values == null ? 0 : values.length,
itemBuilder: (BuildContext context, int index) {
return new Card(
child: new Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[
ListTile(
title: new Text("" + values[index]),
),
],
),
);
},
);
} else {
print("failed");
}
}

return new Text('Hello');
}

下面是输出,我得到:

I/flutter ( 7840): 066613702021
I/flutter ( 7840): failed
I/flutter ( 7840): 066613702021

最佳答案

您可能知道 Flutter 是基于无状态的小部件,其生命周期在框架内。你与小部件交互的方式基本上是通过告诉 flutter 你的应用程序发生了一些变化,它应该重新安排以向用户绘制变化。

在这种情况下,每次扫描新条形码时,调用 setState method

这样框架就可以得到一些变化的通知。

文档说明了这一点

setState 方法

Notify the framework that the internal state of this object has changed. Whenever you change the internal state of a State object, make the change in a function that you pass to setState:

关于dart - 使用 Barcode Scanner 中的值在 flutter 中添加新值后,列表不会扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50667865/

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