Как создавать многомерные списки и виджеты цикла, содержащие значение lists?

#dart #flutter

#dart #flutter

Вопрос:

Я новичок в Flutter amp; 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:

вы можете создать базовый класс для своих нужд

 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"),
  ];
  

и вы можете отображать title , date и day подобным образом, или вы можете изменить Container в соответствии с вашими потребностями / дизайном

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

  

Комментарии:

1. Спасибо, сэр! Сработало как по волшебству. :)))