【发布时间】:2021-10-25 06:50:22
【问题描述】:
如您所见,这是一个列。
列包含展开的行。
列包含一个包含图像的 GestureDetector。
此列的子级之间存在巨大差距。是因为Expanded吗?
如果是,那么什么时候应该使用 Expanded,在这种情况下应该使用什么来代替它?
return new Scaffold(
body: new Column(
children: <Widget>[
SizedBox( height: 220,),
new Expanded(
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
GestureDetector(
onTap: () {
setState(() {
});
},
child: Container(
child: Image.network(
'https://picsum.photos/250?image=9', height: 70, width: 70),
),
),
GestureDetector(
onTap: () {
setState(() {
});
},
child: Image.network('https://picsum.photos/250?image=9', height: 70, width: 70),
),
],
)
),
GestureDetector(
onTap: () {
setState(() {
});
},
child: Container(
padding: const EdgeInsets.all(8),
child: Image.network('https://picsum.photos/250?image=9', height: 70, width: 70),
),
),
],
),
);
【问题讨论】:
-
是的,这是因为
Expanded小部件。页面顶部的空间被SizedBox覆盖。页面底部有一张图片。这两者之间的剩余空间被中间的Expanded小部件占据。 -
扩展 == "尽可能多地占用空间"
-
为避免这种情况,您可以删除展开的小部件或将其替换为
Flexible小部件 -
是的,灵活是很好的解决方案@EhsanAskari