flutter 如何使子窗口宽度与父窗口宽度相同(在数据列中居中窗口小部件)?

ma8fv8wu  于 2023-03-04  发布在  Flutter
关注(0)|答案(2)|浏览(307)

我尝试在DataColumn中使用Expanded,但得到了Incorrect use of ParentDataWidget
我的想法是,我想让文本在列的中心。所以我的代码如下:

DataColumn(
      label: Expanded(
        child: Center(
          child: Text(
            'Center',
          ),
        ),
      ),
    ),

唯一的方法是使用Expanded,但它会使我成为Incorrect use of ParentDataWidget
那么,除了Expanded之外,如何使我的子小部件与父小部件(在我的例子中是DataColumn小部件)具有相同的大小呢?
谢谢
PS.我的DataTable的完整代码

Widget getDataTable() {
    return DataTable(
      columns: const [
        DataColumn(
          label: Expanded(
            child: Center(
              child: Text(
                'center 1',
              ),
            ),
          ),
        ),
        DataColumn(
          label: Expanded(
            child: Center(
              child: Text(
                'center 2',
              ),
            ),
          ),
        ),
      ],
      rows: const [
        DataRow(
          cells: [
            DataCell(
              Expanded(
                child: Center(child: Text('centered content')),
              ),
            ),
            DataCell(
              Expanded(
                child: Center(child: Text('centered content 2')),
              ),
            ),
          ],
        ),
      ],
    );
  }
ff29svar

ff29svar1#

在flutter代码片段中,您编写的代码没有问题,运行良好。可能还有其他错误?下面是我用DataColumn()测试并复制flutter代码片段。

DataColumn(
          label: Expanded(
            child: Center(
              child: Container(
                color:Colors.red,
                child: const Text(
                  'Name',
                  style: TextStyle(fontStyle: FontStyle.italic),
                ),
              ),
            ),
          ),
        ),
sczxawaw

sczxawaw2#

DataCell()SizedBox.shrink()组成:
SizedBox.shrink():它创建一个长方体,该长方体将变得尽可能小到其父项所允许的大小。
Expanded():它试图占用所有可用空间
所以,这就是为什么你会犯错误,
ParentDataWidget使用不当
避免用Expanded Package DataCell

DataRow(
                cells: [
                  DataCell(
                    Text('centered content 1'),
                  ),
                  DataCell(
                    Text('centered content 2'),
                  ),
                ],
              ),

相关问题