Я пишу мобильное приложение на Flutter + Dart и могу отображать информацию об учетной записи пользователя, но я застрял в том, как перебирать список для заполнения и визуализации таблицы с объектами в этом списке прямо под учетной записью пользователя. Информация.
Вот мой «Контейнер», я НЕ хочу использовать индексы вроде videos.removeAt(0)
и каким-то образом перебирать все videos
для заполнения таблицы.
Widget build(BuildContext context) {
List<Video> videos = Video.getVideosFromJson(jsonDecode(json));
return Container(
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: <Widget>[
Text('Account Info for ' + customer.firstName + ' ' + customer.lastName),
Container(
child: Padding(
padding: const EdgeInsets.all(14.0),
//TODO: HERE IS THE TABLE, I WISH TO DUPLICATE THESE ROWS FOR EACH "VIDEO" IN "List<Video> videos"
child: Table(
border: TableBorder.all(width: 1.0, color: Colors.black),
children: [
TableRow(children: [
TableCell(
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: <Widget>[
new Text('VideoId'),
new Text(videos.removeAt(0).id.toString()),
],
),
)
]),
TableRow(children: [
TableCell(
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: <Widget>[
new Text('Video Price'),
new Text(videos.removeAt(0).total.toString()),
],
),
)
]),
]
)
)
)
]
)
);
Как лучше всего решить эту проблему?
1 ответ
Вот что ты можешь сделать.
Ниже dart 2.3 вы можете использовать карту, например:
Table(
border: TableBorder.all(width: 1.0, color: Colors.black),
children: videos.map((video){
return TableRow(children: [
TableCell(
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: <Widget>[
new Text('VideoId'),
new Text(video.id.toString()),
],
),
)
]);
}).toList(),
);
Для dart 2.3 и выше:
Table(
border: TableBorder.all(width: 1.0, color: Colors.black),
children: [
for (var video in videos) TableRow(children: [
TableCell(
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: <Widget>[
new Text('VideoId'),
new Text(video.id.toString()),
],
),
)
])
]
);
Похожие вопросы
Новые вопросы
flutter
Flutter - это набор средств разработки пользовательского интерфейса с открытым исходным кодом, созданный Google. Он используется для разработки приложений для Android, iOS, Linux, Mac, Windows, Google Fuchsia и Интернета из единой кодовой базы. Приложения Flutter написаны на языке Dart.