是否可以为 DataTables 设置动态高度?

Is it possible to make a dynamic height for DataTables?

大家好,我有一个问题。我有一个数据表,我在其中显示我的数据库数据。现在并不是我所有的数据长度都不一样,有些更大,有些更小。我知道我可以使用 dataRowHeight 制作固定高度,但这也意味着当我没有这么长的数据集要显示时,我有很多免费的 space。是否可以使 dataRowHeight 动态化,以便它始终完美地适合每个数据集?

也许这样的方法可以帮助您实现目标?您可以根据用于填充 DataTable 的列表中的元素数来计算 dataRowHeight 的值。 LayoutBuilder 给你最大的。可用高度。

    return LayoutBuilder(
      builder: (context, constraints) {
        final rowHeight = (constraints.maxHeight - 40) / someList.length;
        return DataTable(
          dataRowHeight: rowHeight,
          headingRowHeight: 40,
          showCheckboxColumn: false,
          columns: const <DataColumn>[
            DataColumn(
              label: Text(
                'FirstColumn',
              ),
            ),
            DataColumn(
              label: Text(
                'SecondColumn',
              ),
            ),
          ],
          rows: someList.map<DataRow>((element) {
            return DataRow(
              cells: <DataCell>[
                DataCell(
                  Text(
                    element[0],
                  ),
                ),
                DataCell(
                  Text(
                    element[1],
                  ),
                ),
              ],
            );
          }).toList(),
        );
      },
    );