flutter - 如何使用 Flutter 中的“for”等迭代器制作 Widget?
问题描述
我想在 ListView 中使用 for 之类的迭代器制作一些小部件,如下例所示,
for(int i = 1; i < 3; i++ ){
Text('hello world'),
}
但不幸的是它不起作用,向我显示此错误消息。
The element type 'Set<Text>' can't be assigned to the list type 'Widget'.
我怎样才能解决这个问题?
谢谢你关心我的问题。
解决方案
因为ListView
你可以使用List.generate
.
...
body: ListView(
children: List.generate(
10,
(index) => ListTile(
title: Text(index),
),
),
),
...
如果您是传统的并且想使用for
,那么就这样吧,
...
body: ListView(
children:[
for(int i = 0; i < 5; i++)
ListTile(title:Text("$i")),
]
),
...
如果您有一个非常大的列表,请考虑使用ListView.builder
. 为什么?因为它只渲染屏幕上可用的小部件,加载速度非常快。这是如何使用它,
...
body: ListView.builder(
itemCount: 20,
itemBuilder: (context, index) {
return ListTile(
title: Text("$index"),
);
}
),
...