我有这样的代码,但我希望它遍历一个整数数组以显示动态数量的孩子:
return Container(
child: Column(
children: <Widget>[
Center(
child: Text(text[0].toString(),
textAlign: TextAlign.center),
),
Center(
child: Text(text[1].toString(),
textAlign: TextAlign.center),
),
],
),
)
Run Code Online (Sandbox Code Playgroud)
其中text变量是整数转换器列表,此处为字符串。我尝试添加一个函数来遍历数组并显示“子项”,但出现类型错误。不知道该怎么做,因为我是 Dart 和 Flutter 的新手。
Abb*_*s.M 110
你可以试试这个:
@override
Widget build(BuildContext context) {
List<int> text = [1,2,3,4];
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Container(
child: Column(
children: [
for ( var i in text ) Text(i.toString())
],
),
),
);
Run Code Online (Sandbox Code Playgroud)
请注意,这是随着 dart 更新到 2.3 版而添加的。您可以阅读本文中的一些最佳更改
在 dart 2.3 之前提供的另一种方法是:
@override
Widget build(BuildContext context) {
List<int> text = [1,2,3,4];
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Container(
child: Column(
children: List.generate(text.length,(index){
return Text(text[index].toString());
}),
),
),
);
Run Code Online (Sandbox Code Playgroud)
Eaw*_*web 25
假设您想要在 Column 小部件中循环某些小部件(例如 Text()),您可以在 Children 属性内添加一个循环。请参阅下面的示例:
Column(
children: <Widget>[
for (int i=0; i<3; i++)
Text("Hello" + i)
],
)
Run Code Online (Sandbox Code Playgroud)
Sah*_*sha 10
你可以在这里尝试 .map 方法,
class Example extends StatelessWidget {
List <int> exampleList = [1,2,3,4];
@override
Widget build(BuildContext context) {
return
Container(
child: Column(
children: exampleList.map((i) => new Text(i.toString())).toList()
),
);
}
}
Run Code Online (Sandbox Code Playgroud)
如果你的列表中有对象,这个方法会派上用场。还必须在最后使用.map()方法.toList()。
| 归档时间: |
|
| 查看次数: |
76639 次 |
| 最近记录: |