为什么在 flutter 中,将属性 mainAxisAlignment 设置为列的中心也会使其水平居中?

问题描述 投票:0回答:2

刚接触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"),
          ])
        ],
      ),
    ));
  }

这是结果

android windows flutter frontend
2个回答
0
投票

你的代码看起来不错。我测试了它并且它工作正常,有时 flutter 只保留缓存并且不做清晰可见的更改。试试

flutter clean
然后重新运行项目。它会解决你的问题:)


-1
投票

这是因为 Row 小部件占据了整个宽度,并且它的子部件水平对齐。

为了居中对齐Row Widget的孩子,添加了一个mainAxisAlignment:MainAxisAlignment.center属性到行小部件。

© www.soinside.com 2019 - 2024. All rights reserved.