【问题标题】:How can I make Widget using iterator like 'for' in Flutter?如何使用 Flutter 中的“for”等迭代器制作 Widget?
【发布时间】:2021-10-02 06:08:44
【问题描述】:

我想使用 for 之类的迭代器在 ListView 中制作一些小部件,如下例所示,

for(int i = 1; i < 3; i++ ){
 Text('hello world'),
}

但不幸的是它不起作用,向我显示此错误消息。

The element type 'Set<Text>' can't be assigned to the list type 'Widget'.

我该如何解决这个问题?

感谢您关心我的问题。

【问题讨论】:

标签: flutter dart widget


【解决方案1】:

对于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"),
    );
  }
),
...

【讨论】:

  • 我用第二种方式解决了问题,非常感谢!!!
猜你喜欢
  • 2021-11-12
  • 1970-01-01
  • 1970-01-01
  • 2022-12-08
  • 2021-06-27
  • 2019-10-24
  • 2020-03-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多