我想知道如何在Flutter中将文本小部件的内容垂直和水平居中。我只知道如何使用Center(child: Text("test"))
内容本身来使小部件本身居中。默认情况下,它向左对齐。在Android中,我相信实现此目的的TextView的属性称为gravity
。
我想要的例子:
Answers:
您可以使用构造函数的TextAlign
属性Text
。
Text("text", textAlign: TextAlign.center,)
我认为,更灵活的选择是换行Text()
与Align()
像这样:
Align(
alignment: Alignment.center, // Align however you like (i.e .centerRight, centerLeft)
child: Text("My Text"),
),
使用Center()
似乎TextAlign
完全忽略了Text小部件。它不会对齐,TextAlign.left
或者TextAlign.right
如果尝试,它将保留在中心。
在示例代码下方,SizedBox中心内的文本元素的工作方式要好得多
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
);
}
享受编码👨👨
也许您想为2个容器提供相同的宽度和高度
Container(
width: size.width * 0.30, height: size.height * 0.4,
alignment: Alignment.center,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(6)
),
child: Center(
child: Text(categoryName, textAlign: TextAlign.center, style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 17,
color: Colors.white,
),),
),