flutter - 遍历列表以在 Flutter 中呈现多个小部件?

我有一个这样定义的字符串列表:

var list = ["one", "two", "three", "four"]; 

我想使用文本小部件并排呈现屏幕上的值。我尝试使用以下代码来尝试:

for (var name in list) {
   return new Text(name);
}

但是,当我运行此代码时,for 循环只运行一次,并且只有一个文本小部件被渲染,显示 one(列表中的第一项)。此外,当我在我的 for 循环中添加一条日志消息时,它也会被触发一次。为什么我的 for 循环不根据列表的长度循环?它似乎只运行一次然后退出。

最佳答案

基本上,当您在函数上点击“返回”时,该函数将停止并且不会继续您的迭代,因此您需要做的就是将其全部放在一个列表中,然后将其添加为小部件的子级

你可以这样做:

  Widget getTextWidgets(List<String> strings)
  {
    List<Widget> list = new List<Widget>();
    for(var i = 0; i < strings.length; i++){
        list.add(new Text(strings[i]));
    }
    return new Row(children: list);
  }

甚至更好,您可以使用 .map() 运算符并执行以下操作:

  Widget getTextWidgets(List<String> strings)
  {
    return new Row(children: strings.map((item) => new Text(item)).toList());
  }

https://stackoverflow.com/questions/50441168/

相关文章:

dart - 在 Flutter 中显示 SnackBar

dart - 如何在 Flutter 中旋转 15 度?

flutter - 如何在 Flutter Widget(Center Widget)的子属性中使用

android - 如何在 FlatButton 单击时关闭 AlertDialog?

java - Flutter.io Android 许可证状态未知

android - 所有小部件的 flutter 填充?

flutter - 如何更改 appBar 后退按钮颜色

flutter - 如何将清除按钮添加到 TextField 小部件

dart - 无法更改 TextField 边框颜色

dart - Flutter:如何解决错误导入包:http/http.dart