Flutter 是一个相当新的框架,因此对简单任务没有太多帮助。我要特别问的是如何将 Card 小部件添加到 Column 小部件。下面提供了源代码以帮助解释我的意思。
假设我有一个创建新卡片的函数,如下所示:
buildRow(barcode, letter, name, price) {
return new Card(
child: new Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[
new ListTile(
leading: new CircleAvatar(
child: new Text(letter),
),
title: new Text(name),
subtitle: new Text("\$" + price),
trailing: new Text(
"x1",
style: new TextStyle(color: Colors.lightBlue),
textScaleFactor: 1.2,
),
),
],
),
);
}
var snack = buildRow("091918229292", "C", "Crackers", "\$4.00");
var fruit = buildRow("091928229292", "P", "Pomegranate", "\$2.00");
var juice = buildRow("091948229292", "K", "Kiwi Juice", "\$20.00");
我有以下屏幕/页面:
class Home extends StatefulWidget {
@override
HomePage createState() => new HomePage();
}
class HomePage extends State<Home> {
@override
Widget build(BuildContext context) {
return new Column(children: <Widget>[
]);
}
}
假设提供的所有代码都在同一个文件中。如何在主屏幕的列小部件的子项中添加“零食”、“水果”和“果汁”?
最佳答案
如果您手动更新源,这是一个基本示例。
Column(
children: _createChildren(),
)
///////
这是创建您提供给列的小部件列表的方法
List<int> someList = [1, 2, 3, 4, 5];
List<Widget> _createChildren() {
return new List<Widget>.generate(someList.length, (int index) {
return Text(someList[index].toString());
});
}
//////
因此,当您更新列表时,请在 setState
void _somethingHappens() {
setState(() {
someList.add(6);
});
}
现在,如果您从流中接收数据,则可以检查 StreamBuilder
,或者如果它来自 Future
,则可以使用 FutureBuilder
.
这个例子也可以在常规的 Builder
https://stackoverflow.com/questions/50671619/