首页 > 解决方案 > 如何通过 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(),
    ),
  ),
);

}

标签: flutter

解决方案


为什么不直接使用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 个条目,第一个条目将被填写,但稍后将有空条目。


推荐阅读