Я пытаюсь выровнять два элемента на крайних точках: один слева и один справа. У меня есть одна строка, выровненная по левому краю, а затем дочерний элемент этой строки выровнен по правому краю. Однако кажется, что дочерняя строка получает свойство выравнивания от своего родителя. Это мой код
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
Также в строке достаточно места. У меня вопрос: почему дочерняя строка не показывает свое MainAxisAlignment.end
свойство?
flutter
flutter-layout
MistyD
источник
источник
settingsRow
, который содержитText("right")
mainAxisAlignment
Ребенок не происходит. Обгоняют ли свойства родителей свойства детей?Простым решением было бы использовать
Spacer()
между двумя виджетамиRow( children: [ Text("left"), Spacer(), Text("right") ] );
источник
Вы можете сделать это разными способами.
С помощью
mainAxisAlignment: MainAxisAlignment.spaceBetween
С помощью
Spacer
С помощью
Expanded
С помощью
Flexible
Выход :
источник
Stack
.Stack
, когда его первый дочернийAlign
элемент (справа), а второй может бытьCenter
или простымAlign
.Да
CopsOnRoad
, верно, через стек вы можете выровнять один по правому краю, а другой по центру.Stack( children: [ Align( alignment: Alignment.centerRight, child: Text("right"), ), Align( alignment: Alignment.center, child: Text("center"), ) ], )
источник