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

时间:2018-06-15 07:34:24

标签: grid flutter-layout

我有小型货币表。我没有使用网格。我使用列和行。问题是行中的项目没有显示在中心,如下面的excel示例所示。 我必须使用什么小部件才能使项目居中?有什么帮助吗?

enter image description here

The Example codes:
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>[
....
....
....

4 个答案:

答案 0 :(得分:12)

如果您希望整个表格为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,

答案 1 :(得分:6)

如果需要精细控制,可以使用Spacer

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

您也可以使用flex更改Spacer(flex:2)

答案 2 :(得分:2)

如果您希望它与图片一样,请使用

mainAxisAlignment: MainAxisAlignment.spaceEvenly

答案 3 :(得分:1)

这样使用

  • <块引用>

    在列中

    child: Column(
                mainAxisAlignment: MainAxisAlignment.center,
                crossAxisAlignment: CrossAxisAlignment.center,
                children: [...
                           .
                           ] 
    
  • <块引用>

    在行

     child: Row(
        mainAxisAlignment: MainAxisAlignment.center,
        crossAxisAlignment: CrossAxisAlignment.center,
        children: [...
                           .
                           ]