现在,列之间有很大的空间,即使我有一个 4 个字符的标题和一个 1 到 3 个数字的排名值,就好像我可以在每列中容纳 4 倍。
我尝试使用较小的字体,但分隔保持不变。
这是我用来设置 PaginatedDataTable 的内容。我在表格/行/单元格/等中找不到任何似乎会影响宽度的参数。空间似乎是自动的,但完全没有必要。谢谢。
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(title: const Text('Tour Rankings')),
body:
new ListView(
padding: const EdgeInsets.all(5.0),
children: <Widget>[
new PaginatedDataTable(
header: const Text('Current Rankings'),
rowsPerPage: _rowsPerPage,
onRowsPerPageChanged: (int value) { setState(() { _rowsPerPage = value; }); },
sortColumnIndex: _sortColumnIndex,
sortAscending: _sortAscending,
columns: <DataColumn>[
new DataColumn(
label: new Text('Rank', style: new TextStyle(fontSize: 8.0)),
numeric: true,
onSort: (int columnIndex, bool ascending) => _sort<num>((Player d) => d.rank, columnIndex, ascending)
),
new DataColumn(
label: new Text('Prev', style: new TextStyle(fontSize: 8.0)),
numeric: true,
onSort: (int columnIndex, bool ascending) => _sort<num>((Player d) => d.prevRank, columnIndex, ascending)
),...
Run Code Online (Sandbox Code Playgroud)
小智 5
flutter中分页数据表有一个属性columnSpacing。根据 Material Design 规范,该值默认为 56.0。
您可以根据需要更改该值,以更改列内容之间的水平边距。
PaginatedDataTable(
showCheckboxColumn: false,
columnSpacing: 10.0,
header: Center(
child: Text("Statement"),
),
columns: [
DataColumn(label: Text("Date")),
DataColumn(label: Text("Particular")),
DataColumn(label: Text("Debit")),
DataColumn(label: Text("Credit")),
DataColumn(label: Text("Detail")),
],
source: YourDataSource(),
),
Run Code Online (Sandbox Code Playgroud)
小智 -1
我也遇到了同样的问题,因为 flutter PaginatoredDataTable 布局的灵活性。我的解决方案是使用布局变量扩展 DataTable 的构造函数:
FlexibleDataTable({
Key key,
@required this.columns,
this.sortColumnIndex,
this.sortAscending = true,
this.onSelectAll,
this.headingRowHeight = 56.0,
this.dataRowHeight = 48.0,
this.tablePadding = 24.0,
this.columnSpacing = 56.0,
this.sortArrowPadding = 2.0,
this.headingFontSize = 12.0,
@required this.rows,
}
Run Code Online (Sandbox Code Playgroud)
当然,我必须实现FlexiblePaginatedDatatable才能使用FlexibleDataTable:
new SingleChildScrollView(
scrollDirection: Axis.horizontal,
child: new FlexibleDataTable(
key: _tableKey,
columns: widget.columns,
sortColumnIndex: widget.sortColumnIndex,
sortAscending: widget.sortAscending,
onSelectAll: widget.onSelectAll,
columnSpacing: 20.0,
dataRowHeight: 40.0,
rows: _getRows(_firstRowIndex, widget.rowsPerPage)
)
),
Run Code Online (Sandbox Code Playgroud)
Flutter 团队应该在 DataTable 和 PaginatoredDataTable 的官方版本中包含此功能,这样其他人就不需要为此类琐碎的事情实现临时版本。问题确实存在,我们将看看何时解决。 https://github.com/flutter/flutter/issues/12775
| 归档时间: |
|
| 查看次数: |
7852 次 |
| 最近记录: |