it-swarm.com.de

Flatter: Beim Versuch, ein Element in einer Spalte von unten zu zentrieren, bleibt es jedoch nach links ausgerichtet

Ich versuche, ein Widget unten in der Mitte einer Spalte zu zentrieren, aber es wird immer nach links ausgerichtet.

return new Column(
  new Stack(
    new Positioned(
      bottom: 0.0, 
      new Center(
        new Container(),
      ),
    ),
  ),
); 

Die Existenz des Positionierten zwingt den Container nach links anstatt zu zentrieren. Durch das Entfernen der Position wird der Container jedoch in der Mitte der Mitte platziert.

17
Mary

Align ist der Weg zu gehen, wenn Sie nur ein Kind haben.

Wenn Sie mehr haben, überlegen Sie sich Folgendes:

return new Column(
  crossAxisAlignment: CrossAxisAlignment.center,
  mainAxisSize: MainAxisSize.max,
  mainAxisAlignment: MainAxisAlignment.end,
  children: <Widget>[
      //your elements here
  ],
);
25
Rémi Rousselet

1) Sie können ein Align Widget mit FractionalOffset.bottomCenter verwenden.

2) Sie können auch left: 0.0 und right: 0.0 in der Positioned einstellen.

12
Mary

Ich habe diesen Ansatz verwendet, 

Was ich will, ist, A layout immer im unteren Bereich, aber immer, wenn Keyboard erscheint, kommt layout auch darüber

 enter image description here

body: Container(
        color: Colors.amber,
        height: double.maxFinite,
        child: new Stack(
          //alignment:new Alignment(x, y)
          children: <Widget>[
            new Positioned(
              child: myWidget(context, data.iconName, Colors.red),
            ),
            new Positioned(
              child: new Align(alignment: FractionalOffset.bottomCenter,child: myWidget(context, data.iconName, Colors.green)),
            )
          ],
        ),
      ),
2
Tushar Pandey

Wickeln Sie Ihren Container in das Widget SingleChildScrollView (). Dann wird es nicht weiter oben angezeigt, wenn die Tastatur geöffnet wird.

0