1. ホーム
  2. flutter

[解決済み] フラッターは2つのアイテムを左と右の両極端に配置します。

2022-04-27 06:38:38

質問

2つのアイテムを左と右に極端に整列させようとしています。 左揃えの行が1つあり、その子行が右揃えになります。しかし、子行が親行からalignmentプロパティを取得しているようです。以下は私のコードです。

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

        var nameRow = new Row(
            mainAxisAlignment: MainAxisAlignment.start,
            crossAxisAlignment: CrossAxisAlignment.center,
            mainAxisSize: MainAxisSize.max,
            children: <Widget>[
                Text("Left"),
                SettingsRow,
            ],
        );

その結果、次のようなものが得られました。

Left Right

私が望むものは

Left      Right

また、Rowには十分なスペースがあります。質問ですが、なぜ子行には MainAxisAlignment.end プロパティを使用します。

解決方法は?

を1つ使用します。 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,
    ),
  ],
);