我想知道如何在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,
),),
),