首页 > 解决方案 > 如何使用 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'.

我怎样才能解决这个问题?

谢谢你关心我的问题。

标签: flutterdartwidget

解决方案


因为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"),
    );
  }
),
...

推荐阅读