Estoy tratando de alinear dos elementos en los extremos, uno a la izquierda y otro a la derecha. Tengo una fila que está alineada a la izquierda y luego un hijo de esa fila está alineado a la derecha. Sin embargo, parece que la fila secundaria está recogiendo la propiedad de alineación de su padre. Este es mi codigo
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,
],
);
como resultado obtengo algo como esto
Left Right
Lo que me gustaría es
Left Right
También hay suficiente espacio en la fila. Mi pregunta es ¿por qué el niño Row no exhibe su MainAxisAlignment.end
propiedad?
flutter
flutter-layout
MistyD
fuente
fuente
settingsRow
, que contieneText("right")
mainAxisAlignment
del niño no ocurre. ¿Las propiedades de los padres superan a las de los niños?Una solución simple sería usar
Spacer()
entre los dos widgetsRow( children: [ Text("left"), Spacer(), Text("right") ] );
fuente
Puedes hacerlo de muchas formas.
Utilizando
mainAxisAlignment: MainAxisAlignment.spaceBetween
Utilizando
Spacer
Utilizando
Expanded
Utilizando
Flexible
Salida :
fuente
Stack
en ese caso.Stack
, con su primer hijoAlign
(correcto) y el segundo podría ser unCenter
o simpleAlign
.Sí,
CopsOnRoad
es correcto, a través de la pila puede alinear uno a la derecha y otro en el centro.Stack( children: [ Align( alignment: Alignment.centerRight, child: Text("right"), ), Align( alignment: Alignment.center, child: Text("center"), ) ], )
fuente