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

whitzsjs  于 2023-03-04  发布在  Flutter
关注(0)|答案(2)|浏览(99)

我是flutter新手,在练习行列控件时遇到了这个问题。据说在flutter列中将mainAxisAlignment设置为center会使子对象垂直居中,但为什么当我添加一行作为子对象时,列也水平居中,而行子对象没有呢?
有人知道为什么吗?
这是密码

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

下面是结果click here to see the result

ql3eal8s

ql3eal8s1#

你的代码似乎是好的。我测试了它,它工作得很好,有时flutter只是保持缓存,不做明显可见的更改。尝试flutter clean然后重新运行该项目。它会解决你的问题:)

xuo3flqw

xuo3flqw2#

这是因为Row小部件占据了整个宽度,并且其子小部件水平对齐。
为了居中对齐行控件的子控件,添加了 mainAxisAlignment:MainAxisAlignment.center 属性添加到行小工具。

相关问题