代码之家  ›  专栏  ›  技术社区  ›  user1961

如何在Flatter DataColumn小部件中居中放置标签?

  •  0
  • user1961  · 技术社区  · 5 年前

    我可以将数据单元集中在数据行中,但如何将其用于数据列标签?

    我希望第一列数据左对齐,其余数据居中。在中心小部件中包装标签不会生效。

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

    Center Widget is not applied to Text child

    1 回复  |  直到 5 年前
        1
  •  16
  •   Rodrigo Boratto    4 年前

    发现方法:

    DataColumn(
        label: Expanded(
            child: Text(
      'Label',
      textAlign: TextAlign.center,
    ))),
    
        2
  •  1
  •   Charles Jr    5 年前

    您可能希望将标签的内容包装在 Center 小装置。还有一个Align小部件使用 alignment: Alignment.center 你的文字就像孩子一样。

        3
  •  1
  •   Sanjeev Sangral nitin kumar    4 年前

    我就是这样解决这个问题的:

    DataColumn(
                label: Center(
                widthFactor: 5.0, // You can set as per your requirement.
                child: Text(
                'View',
                style: style_16_bold_primary,
                ),
              ),
          ),
    
        4
  •  -1
  •   Mutlu Simsek    5 年前

    我也遇到了同样的问题,通过在data_表中注释下面的代码部分解决了这个问题。省道锉刀。

    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 ],
      );
    }