Ich möchte wissen, wie der Inhalt eines Text-Widgets in Flutter vertikal und horizontal zentriert wird. Ich weiß nur, wie man das Widget selbst zentriert, Center(child: Text("test"))
aber nicht den Inhalt selbst. Es ist standardmäßig linksbündig ausgerichtet. In Android glaube ich, dass die Eigenschaft einer TextView, die dies erreicht, aufgerufen wird gravity
.
Beispiel für das, was ich will:
Sie können die
TextAlign
Eigenschaft desText
Konstruktors verwenden.Text("text", textAlign: TextAlign.center,)
quelle
Ich denke , eine flexiblere Möglichkeit wäre, das umwickeln
Text()
mitAlign()
etwa so:Align( alignment: Alignment.center, // Align however you like (i.e .centerRight, centerLeft) child: Text("My Text"), ),
Die Verwendung
Center()
scheintTextAlign
im Text-Widget vollständig zu ignorieren . Es wird nicht ausgerichtetTextAlign.left
oderTextAlign.right
wenn Sie es versuchen, bleibt es in der Mitte.quelle
child: Align( alignment: Alignment.center, child: Text( 'Text here', textAlign: TextAlign.center, ), ),
Dies brachte das beste Ergebnis für mich.
quelle
Das Textelement in der Mitte von SizedBox funktioniert unter dem Beispielcode viel besser
Widget build(BuildContext context) { return RawMaterialButton( fillColor: Colors.green, splashColor: Colors.greenAccent, shape: new CircleBorder(), child: Padding( padding: EdgeInsets.all(10.0), child: Row( mainAxisSize: MainAxisSize.min, children: <Widget>[ SizedBox( width: 100.0, height: 100.0, child: Center( child: Text( widget.buttonText, maxLines: 1, style: TextStyle(color: Colors.white) ), ) )] ), ), onPressed: widget.onPressed ); }
Viel Spaß beim Codieren 👨💻
quelle
Platzieren Sie den Text in einer Mitte:
Container( height: 45, color: Colors.black, child: Center( child: Text( 'test', style: TextStyle(color: Colors.white), ), ), );
quelle
Wenn Sie ein Intellij IDE-Benutzer sind, können Sie die Tastenkombination verwenden
Alt+Enter
und dann auswählenWrap with Center
und dann hinzufügentextAlign: TextAlign.center
quelle
Übersicht: Ich habe das Flex-Widget verwendet, um Text auf meiner Seite mithilfe des MainAxisAlignment.center entlang der horizontalen Achse zu zentrieren. Ich verwende die Containerauffüllung, um einen Randbereich um meinen Text zu erstellen.
Flex( direction: Axis.horizontal, mainAxisAlignment: MainAxisAlignment.center, children: [ Container( padding: EdgeInsets.all(20), child: Text("No Records found", style: NoRecordFoundStyle)) ])
quelle