Flutter - 采用其子项高度的列

Posted

技术标签:

【中文标题】Flutter - 采用其子项高度的列【英文标题】:Flutter - Column that takes the height of its children 【发布时间】:2020-02-02 20:10:30 【问题描述】:

是否可以垂直排列子级,使父级采用其子级的大小?

更具体地说,这是我想要做的:

让一个图标和一个文本垂直对齐,它们之间有一个小空间,在一个固定高度的矩形内居中。

我希望文本和图标的垂直容器的大小与其子项一致。 像 FlatButton.icon 这样的东西,只有垂直而不是水平。

对于那个内部的垂直容器,我发现的只有 Column 和 ListView,它们都采用了它们在父级中可以获得的所有高度,而不是采用它们的子级的高度。

【问题讨论】:

【参考方案1】:

该示例代码应该可以完成这项工作:

Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: <Widget>[
          Center(
            child: Container(
                child: Center(
                    child: Container(
                        child: Column(
                          mainAxisSize: MainAxisSize.min,
                          children: <Widget>[
                            Icon(
                              Icons.star,
                              size: 50.0,
                            ),
                            SizedBox(
                              height: 30,
                            ),
                            Text(
                              'Some text',
                              textAlign: TextAlign.center,
                            )
                          ],
                        ),
                        color: Colors.blue,
                        width: 120)),
                width: 300,
                height: 300,
                color: Colors.green),
          ),
        ],
      )

感谢mainAxisSize:MainAxisSize.min,

【讨论】:

我完全忘记了这个属性。谢谢。

以上是关于Flutter - 采用其子项高度的列的主要内容,如果未能解决你的问题,请参考以下文章

将 Text 小部件添加到其子项映射到 Flutter 的 ListView?

Flexbox 子项在 Safari 中超出其高度

div 的自动高度不符合其 SVG 图标子项的高度

Flutter:最小高度,扩展和 SingleChildScrollView?

Flutte VS RN

React Native中的Flexbox可变高度子项