【发布时间】:2021-01-21 21:58:50
【问题描述】:
注意。 这只是简化我想要实现的目标的示例。
我想用黄色容器填充这个空间:
所以我制作了一个容器并用Expanded 小部件包裹它以填充整个空间,这就是我得到的:
代码:
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
decoration:
BoxDecoration(border: Border.all(width: 5, color: Colors.black)),
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
Container(
width: 300,
height: 300,
color: Colors.blue,
alignment: Alignment.center,
child: Text('300x300')),
Column(mainAxisSize: MainAxisSize.min, children: [
Container(
width: 100,
height: 100,
color: Colors.green,
alignment: Alignment.center,
child: Text('100x100')),
Expanded(
child: Container(width: 100, color: Colors.amber),
)
],
)
],
),
);
}
这个形状的代码:
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
decoration:
BoxDecoration(border: Border.all(width: 5, color: Colors.black)),
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
Container(
width: 300,
height: 300,
color: Colors.blue,
alignment: Alignment.center,
child: Text('300x300')),
Column(
mainAxisSize: MainAxisSize.min,
children: [
Container(
width: 100,
height: 100,
color: Colors.green,
alignment: Alignment.center,
child: Text('100x100')),
Container(
width: 100,
height: 200,
color: Colors.amber,
alignment: Alignment.center,
child: Text('100x200')),
],
)
],
),
);
}
如果我知道高度和宽度,那么我可以设计这个形状。 但是,如果我不知道蓝色 Container 的高度怎么办?
我认为应该修复 Expanded 的问题。
Expanded 小部件应该将其子级扩展至其父级的限制边界,而不是扩展其父级!!
已编辑。
我有这个 cmets 列表,我想要的是评论旁边的绿线填充到评论小部件末尾的高度。
所以我不能为评论设置固定大小,因为我可能有一个带有长字符串的评论,所以该行不会填充到评论文本的末尾会超出其限制。
【问题讨论】:
-
Expanded取决于其父级.. 但在您的情况下,您的父级没有身高。尝试用 Container 包裹您的Row或Column(取决于您是否使用它)并添加高度。 -
Expanded已经将其子代扩展到其父代的极限边界。这不是错误,为Expanded提供约束的唯一小部件是Scaffold,因此它扩展到Scaffold提供的高度约束。如果您希望这个小部件按照您期望的方式调整大小,您需要提供一个高度约束,包括Columns。 -
@Reign 我已经知道了,在我的问题开始时,我说这只是我想要实现的一个例子。我问这个问题是因为我陷入了这样一种情况,即我希望扩展后占据其父级的全部高度,该父级已经在一行内,我无法设计我只是使用这个例子来简化我的问题。
-
@ChristopherMoore 如果你愿意,我可以提供一些我的实际问题的图片。
-
@AbdelazeemKuratem 您误解了文档。您的行将填充其父高度。然后行的子级,将根据父级高度展开。所以最后,你的扩展视图会扩展到整个屏幕高度