我如何使用数据表[FLUTTER]显示我的数据表形式



我在一个颤振,我有2个列表,1。usersEmails, usersNames

如何排序代码,使useremail和userNames的第一个元素成为数据表的第一行

的例子:

  1. 邮件列表:[ABC, DEF, GHI]
  2. 名单:[MNO, PQR, XYZ]

我想要的是

数据行将取决于Email/Name List中元素的总数。

DataTable(
columns: const [
DataColumn(label: Text('ID'),),
DataColumn(label: Text('Email'),),
DataColumn(label: Text('Name'),),
],
rows: const [
DataRow(cells: [
DataCell(Text("101")),
DataCell(Text("ABC")),
DataCell(Text("MNO")),
]),
DataRow(cells: [
DataCell(Text("102")),
DataCell(Text("DEF")),
DataCell(Text("PQR")),
]),
DataRow(cells: [
DataCell(Text("103")),
DataCell(Text("GHI")),
DataCell(Text("XYZ")),
]),
]
)

可以试试下面的代码吗

class _MyHomePageState extends State<MyHomePage> {
List lst =  ['ABC', 'DEF', 'GHI'];
List lst2 =  ['asdas', 'adsasd', 'dfaas'];
List<DataRow> generateDataRow(List ls) {
List<DataRow> dataRows = [];
//Both list should have same length
//Otherwise it will throw errors.
for (int i=0; i<ls.length; i++) {
dataRows.add(
DataRow(
cells: [
DataCell(Text(ls[i])),
DataCell(Text(lst2[i])),
]
)
);
}
return dataRows;
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Padding(
padding: const EdgeInsets.all(16),
child: DataTable2(
columnSpacing: 12,
horizontalMargin: 12,
minWidth: 600,
columns: const [
DataColumn2(
label: Text('Email'),
size: ColumnSize.L,
),
DataColumn(
label: Text('Name'),
),
],
rows: generateDataRow(lst),),
),// This trailing comma makes auto-formatting nicer for build methods.
);
}
}

最新更新