Flutter将两个项目对齐在极端位置-一个在左边,一个在右边。

27 浏览
0 Comments

Flutter将两个项目对齐在极端位置-一个在左边,一个在右边。

我正在尝试将两个项目对齐到极端,一个在左边,一个在右边。

我有一行靠左对齐,然后该行的子代靠右对齐。然而,似乎子行正在从其父行中拾取对齐属性。这是我的代码

var SettingsRow = new Row(
            mainAxisAlignment: MainAxisAlignment.end,
            crossAxisAlignment: CrossAxisAlignment.center,
            mainAxisSize: MainAxisSize.max,
            children: [
                Text("Right",softWrap: true,),
            ],
        );
        var nameRow = new Row(
            mainAxisAlignment: MainAxisAlignment.start,
            crossAxisAlignment: CrossAxisAlignment.center,
            mainAxisSize: MainAxisSize.max,
            children: [
                Text("Left"),
                SettingsRow,
            ],
        );

结果我得到像这样的东西

Left Right

我想要的是

Left      Right

此外,行上有足够的空间。我的问题是为什么子行不表现出它的MainAxisAlignment.end属性?

admin 更改状态以发布 2023年5月24日
0
0 Comments

一个简单的解决方案是在两个小部件之间使用Spacer()

Row(
  children: [
    Text("left"),
    Spacer(),
    Text("right")
  ]
);

0
0 Comments

可以使用单个Row,并设置mainAxisAlignment: MainAxisAlignment.spaceBetween

new Row(
  mainAxisAlignment: MainAxisAlignment.spaceBetween,
  children: [
    new Text("left"),
    new Text("right")
  ]
);

或者你也可以使用Expanded

new Row(
  children: [
    new Text("left"),
    new Expanded(
      child: settingsRow,
    ),
  ],
);

0