刚接触flutter,在练习行列widget的时候遇到了这个问题。据说在 flutter 列中将
mainAxisAlignment
设置为居中将使子项垂直居中,为什么当我添加一行作为子项时,列也水平居中而行子项却没有?
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text("Exercise row & column"),
),
body: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text("Text 1"),
Text("Text 2"),
Text("Text 3"),
Row(children: <Widget>[
Text("Text 4"),
Text("Text 5"),
Text("Text 6"),
])
],
),
));
}
这是结果
你的代码看起来不错。我测试了它并且它工作正常,有时 flutter 只保留缓存并且不做清晰可见的更改。试试
flutter clean
然后重新运行项目。它会解决你的问题:)
这是因为 Row 小部件占据了整个宽度,并且它的子部件水平对齐。
为了居中对齐Row Widget的孩子,添加了一个mainAxisAlignment:MainAxisAlignment.center属性到行小部件。