如何创建多维列表并循环包含列表值的窗口小部件?

时间:2019-03-24 16:05:19

标签: dart flutter

我是Flutter&Dart的新手,正在尝试构建一个应用程序。

我目前的目标是建立一个列表(数组),但是要有一个“索引”以供以后访问。之后,我想在小部件中输出它。不幸的是,我在网络上找不到任何教程或有用的资源。

  1. 构建一个列表,其中包含事件的日期和日期。我尝试了以下操作,但不起作用。

    var events = [ {"day": "Monday", "date": "01.01.2019", "title": "Musical Event Austria"}, {"day": "Wednesday", "date", "01.01.2019", "title": "Musical Event 2"}];
    
  2. 在列表中循环并在小部件中输出

    new Container(decoration: const BoxDecoration(
              color: Color(0xFF0F1633),
    ),
     child: SingleChildScrollView(
            scrollDirection: Axis.horizontal,
            child: Row(
                mainAxisAlignment: MainAxisAlignment.spaceAround,
                children: events.map((day, date, title) => new Text(title)).toList(),
              ),
            ),
          ),
    

那么我该如何正确构建列表并输出呢?我想在文本窗口小部件中输出的实际上是标题,日期和日期……但是实际上尝试了许多方法来实现它,没有办法。 :)))

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以根据需要创建基本类

class YourObject {
  final String title;
  final String day;
  final String date;

  YourObject({this.title, this.day, this.date});
}

从该类/对象创建一个List

  List<YourObject> yourObjectList = [
    YourObject(day: "Monday", date: "01.01.2019", title: "Musical Event Austria"),
    YourObject(day: "Wednesday", date: "01.01.2019", title: "Musical Event 2"),
  ];

并且您可以这样渲染titledateday,也可以根据需要/设计更改Container

  return Column(
    children: yourObjectList.map((currentObject) {
      return Container(
        child: Row(
          children: <Widget>[
            Text(currentObject.title),
            Text(currentObject.day),
            Text(currentObject.date),
          ],
        ),
      );
    }).toList(),
  );