flutter - 如何通过 Datatable 行填充屏幕的空白空间?
问题描述
我有一个由 mysql 的结果填充的数据表。行数取决于 mysql 的结果数。无论mysql结果的数量是多少,我都需要按行填充所有空白屏幕空间的DataTable。换句话说:DataTable 顶部的行将被填充,如果结果数小于行数,底部的将为空。现在如何运作:
SingleChildScrollView _dataColumn() {
return SingleChildScrollView(
scrollDirection: Axis.vertical,
child: SingleChildScrollView(
child: CustomDataTable(
columns: [
DataColumn(
label: Text('Teachers'),
),
],
rows: _filterEmployees
.map(
(employee) => DataRow(cells: [
DataCell(
Text(
employee.teachName,
),
onTap: () {
...
});
},
),
]),
)
.toList(),
),
),
);
}
解决方案
为什么不直接使用List Generate进行固定数量的迭代并映射员工中的数量。
SingleChildScrollView _dataColumn() {
return SingleChildScrollView(
scrollDirection: Axis.vertical,
child: SingleChildScrollView(
child: CustomDataTable(
columns: [
DataColumn(
label: Text('Teachers'),
),
],
rows:
List<int>.generate(10, (i) => i).map((num) {
if (num < _filterEmployees.length) {
return _filterEmployees[num];
}
//Default Employee object
return Employee();
}).map((employee) => DataRow(cells: [
DataCell(
Text(
employee.teachName,
),
onTap: () {
...
});
},
),
]),
)
.toList(),
),
),
);
}
现在您Datatable
将始终包含 10 个条目,第一个条目将被填写,但稍后将有空条目。
推荐阅读
- ios - 包含 UITableView 的 UIView 扩展了父 UIView 的边界并且不滚动
- android - 如何实现 Intent 以实现无缝导航
- webpack-4 - webpack 4 导出未按配置公开
- macos - 为什么 swt 的 gc 不使用新的 SWT 在 Mac os mojave 中绘制任何图像?
- python - 我命令上的 encode() 函数正在向服务器发送一个以 b' 为前缀的请求
- angular - 从 Observable 中获取字符串
- uwp - Azure 将路由响应映射到 Windows.Services.Maps.MapControl
- java - 引导选项卡在 Java/SpringBoot 应用程序中无法正常工作
- javascript - Electron - 从 Main 到 Renderer 的消息导致空对象
- lua - 加载 Lua 文件并捕获任何语法错误