我有一个Container
,其高度基于其父级,而其高度为Expanded
,其挠度为2。我需要高度和宽度相同。我不想创建固定宽度,例如width: 100.0
。是否可以使宽度与Container
内的Expanded
的高度匹配?
答案 0 :(得分:4)
为此,您必须使用LayoutBuilder
,这是最小的代码:
Column(
children: <Widget>[
Expanded(
flex: 2,
child: LayoutBuilder(
builder: (_, constraints) {
return Container(
color: Colors.blue,
width: constraints.maxHeight, // width is made equal to height
);
},
),
),
Expanded(
flex: 9,
child: Container(color: Colors.orange),
),
],
)
编辑:正如@pskink和其他提到的,您也可以使用AspectRatio
AspectRatio(
aspectRatio: 1,
child: Container(color: Colors.blue),
)
答案 1 :(得分:0)
纵横比将起作用
AspectRatio(
aspectRatio: 1,
child: Container(
color: Colors.red,
),
)