如何在 Flutter DataColumn 小部件中将标签居中?

问题描述 投票:0回答:5

我可以将 DataCell 居中放置在 DataRow 中,但是对于 DataColumn 标签,您如何做到这一点?

我希望第一个 DataColumn 左对齐,其余居中。将标签包裹在中心小部件中不会生效。

new DataColumn(
            label: Center(
              child: Text(statName,textAlign: TextAlign.center,
                style: TextStyle(fontSize: 24.0, fontWeight: FontWeight.bold),),
            )
        );

flutter dart flutter-layout
5个回答
26
投票

找到方法:

DataColumn(
    label: Expanded(
        child: Text(
  'Label',
  textAlign: TextAlign.center,
))),

2
投票

您可能希望将 Label 的内容包装在

Center
小部件中。还有一个 Align 小部件,它使用
alignment: Alignment.center
和您的 Text 作为它的孩子。


1
投票

这就是我解决这个问题的方法:

DataColumn(
            label: Center(
            widthFactor: 5.0, // You can set as per your requirement.
            child: Text(
            'View',
            style: style_16_bold_primary,
            ),
          ),
      ),

0
投票

对于这个问题我也接受Rodrigo Boratto的回答。在 flutter v3.7.3 上测试

我来这里是为了获得“How to center a DataCell”的答案。我把我的发现放在这里供任何感兴趣的人使用。

DataCell(
  Align(
    alignment: Alignment.center,
    child: Text(
        match['score'],
        textAlign: TextAlign.center,
    ),
  ),
),

-1
投票

我遇到了同样的问题,并通过在 data_table.dart 文件中注释以下代码部分解决了这个问题。

if (onSort != null) {
  final Widget arrow = _SortArrow(
    visible: sorted,
    down: sorted ? ascending : null,
    duration: _sortArrowAnimationDuration,
  );
  const Widget arrowPadding = SizedBox(width: _sortArrowPadding);
  label = Row(
    textDirection: numeric ? TextDirection.rtl : null,
    children: <Widget>[ label, arrowPadding, arrow ],
  );
}
© www.soinside.com 2019 - 2024. All rights reserved.