Flutter 来自API的颤振数据表
我有一个颤振应用程序,我用它来获取和显示数据。我从api获取数据,然后将其显示在datatable中。我想先显示列标题一次,然后在列表中显示数据,而不是在每个数据项中重复列标题,如下图所示 下面是显示数据表的代码Flutter 来自API的颤振数据表,flutter,dart,datatable,flutter-layout,Flutter,Dart,Datatable,Flutter Layout,我有一个颤振应用程序,我用它来获取和显示数据。我从api获取数据,然后将其显示在datatable中。我想先显示列标题一次,然后在列表中显示数据,而不是在每个数据项中重复列标题,如下图所示 下面是显示数据表的代码 Expanded( child: ListView.builder( itemCount: loans.results.length,
Expanded(
child: ListView.builder(
itemCount: loans.results.length,
itemBuilder: (context, index) {
final y = loans.results[index].customer.firstname +
" " +
loans.results[index].customer.lastname;
final x = loans
.results[index].loanParticulars.amountApplied;
final z = loans.results[index].stage.name;
final w =
loans.results[index].loanApplicationStatus.name;
return SingleChildScrollView(
scrollDirection: Axis.horizontal,
child: DataTable(columnSpacing: 38.0, columns: [
DataColumn(label: Text('Name')),
DataColumn(label: Text('Amount')),
DataColumn(label: Text('Status')),
DataColumn(label: Text('Stage')),
], rows: [
DataRow(cells: [
DataCell(Container(width: 75, child: Text(y))),
DataCell(Container(child: Text(x))),
DataCell(Container(child: Text(w))),
DataCell(Container(child: Text(z)))
])
]),
);
}))
您还将为每个索引值生成一个
DataColumn
标题。您应该只为索引值生成数据行
替换以下代码段,而不是扩展的小部件并检查:
Expanded(
child: SingleChildScrollView(
scrollDirection: Axis.horizontal,
child: DataTable(
columnSpacing: 38.0,
columns: [
DataColumn(label: Text('Name')),
DataColumn(label: Text('Amount')),
DataColumn(label: Text('Status')),
DataColumn(label: Text('Stage')),
],
rows: List.generate(loans.results.length, (index) {
final y = loans.results[index].customer.firstname +
" " +
loans.results[index].customer.lastname;
final x = loans.results[index].loanParticulars.amountApplied;
final z = loans.results[index].stage.name;
final w = loans.results[index].loanApplicationStatus.name;
return DataRow(cells: [
DataCell(Container(width: 75, child: Text(y))),
DataCell(Container(child: Text(x))),
DataCell(Container(child: Text(w))),
DataCell(Container(child: Text(z)))
]);
}),
),
),
);
我举了一个例子,你只要删除listview构建器,然后像这样做
SingleChildScrollView(
scrollDirection: Axis.horizontal,
child: DataTable(columnSpacing: 38.0, columns: [
DataColumn(label: Text('Name')),
], rows: loans.results.map((e) => DataRow(
selected: false,
onSelectChanged: (value) {},
cells: [
DataCell(Container(child:
Text(e.customer.firstname),)),
]
)).toList(),
)