如何在Flutter中使列和行项目居中?

问题描述 投票:23回答:3

我有一个小的货币表。我没有使用网格。我使用了列和行。问题是行中的项目没有显示在中心,如下图所示,在Excel的例子中,我必须使用什么部件来使项目居中?

enter image description here

例子中的代码。

return new Center(
  child: new Column(
    crossAxisAlignment: CrossAxisAlignment.center,
    children: <Widget>[
      new Row(
        mainAxisAlignment: MainAxisAlignment.center,
        children: <Widget>[
          new Padding(
            padding: const EdgeInsets.fromLTRB(15.0, 5.0, 15.0, 5.0),
            child: new Icon(
              Icons.crop_rotate,
              color: Colors.white,
            ),
          ),
          new Padding(
            padding: const EdgeInsets.fromLTRB(15.0, 5.0, 15.0, 5.0),
            child: new Text("STG", style: mainHeadTextStyle),
          ),
          new Padding(
            padding: const EdgeInsets.fromLTRB(15.0, 5.0, 15.0, 5.0),
            child: new Text("EUR", style: mainHeadTextStyle),
          ),
          new Padding(
            padding: const EdgeInsets.fromLTRB(15.0, 5.0, 15.0, 5.0),
            child: new Text("USD", style: mainHeadTextStyle),
          ),
        ],
      ),
      new Row(
        mainAxisAlignment: MainAxisAlignment.center,
        children: <Widget>[
....
....
....
grid flutter-layout
3个回答
69
投票

如果你想让整个表格是 Centered,使用 mainAxisAlignment 的财产 Column.

栏目

mainAxisAlignment: MainAxisAlignment.center //Center Column contents vertically,
crossAxisAlignment: CrossAxisAlignment.center //Center Column contents horizontally,

mainAxisAlignment: MainAxisAlignment.center //Center Row contents horizontally,
crossAxisAlignment: CrossAxisAlignment.center //Center Row contents vertically,

5
投票

如果你想让它像图中一样,请使用

mainAxisAlignment: MainAxisAlignment.spaceEvenly

1
投票

您可以使用 Spacer 如果你想要细微的颗粒控制。

Column(
  children: <Widget>[
    Spacer(), // 1st spacer
    Widget1(),
    Widget2(),
    Spacer(), // 2nd spacer
  ],
)

你可以改变 flex 也用 Spacer(flex:2)

© www.soinside.com 2019 - 2024. All rights reserved.