答案 0 :(得分:5)
Column窗口小部件非常灵活 - 它会尝试占用所需的空间,但不会更多。如果您希望它占用所有可用空间,请将其包装在Expanded小部件中。
createChildren() {
return [
Image.network(
testImg,
height: imageSize,
width: imageSize,
),
Padding(padding: EdgeInsets.only(left: 16.0)),
Expanded(child:
Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
boldText("Some title"),
Text("Address"),
Text("Description")
],
),
),
];
}
答案 1 :(得分:2)
不要在 Column 内使用 flex=1,这里你可以看到例子
children: [
MyWidget(),
Expanded(
child: MyWidget(),
),
MyWidget(),
],
答案 2 :(得分:1)
使用CrossAxisAlignment.stretch
对我有用:
Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
Text("Some title"),
Text("Address"),
Text("Description")
],
),
答案 3 :(得分:0)
使用MainAxisSize.max
Row(
mainAxisSize: MainAxisSize.max,
children: <Widget>[
Column(
children: <Widget>[
_someWidget(),
_someWidget(),
_someWidget(),
],
),
],
)
答案 4 :(得分:0)
根据您的布局,我假设您的 Column
嵌套在 Row
内。用 Row
包裹您的 IntrinsicHeight
,您的 Column
将自动扩展其高度以与 Row
的最高孩子相同:
IntrinsicHeight(
child: Row(
children: [
Container(width: 40, height: 40, color: Colors.blue),
// tallest child
Container(width: 40, height: 60, color: Colors.blue),
// height will be 60
Column(
...
),
],
),
)