class Test extends StatelessWidget {
Widget build(BuildContext context) {
return UnconstrainedBox(
child: Container(
height: 250.0,
width: 250.0,
decoration:
BoxDecoration(shape: BoxShape.circle, color: Colors.red),
child: Opacity(
opacity: 0.5,
child: Container( // WIDGET IN QUESTION
constraints:
BoxConstraints.expand(width: 50.0, height: 50.0),
color: Colors.yellow))));
}
}
根据Container class documentation ...
如果窗口小部件没有子级也没有对齐方式,但是提供了高度,宽度或约束,则考虑到这些约束和父约束的组合,Container会尽量缩小。 em>
相反,小部件正在尝试尽可能大(父级大小)而不是50x50。我了解我可以使用类似UnconstrainedBox
之类的东西,但是我正在寻找这种行为的解释。
答案 0 :(得分:3)
问题出在您的根容器上。
通过设置宽度和高度不为alignment
,Container会强制其子项填充可用空间。
如果希望该子项占用最少的空间,则需要指定根容器,以使其在子边界内对齐子项。
Container(
width: 250,
height: 250,
alignment: Alignment.center,
child: Whatever(),
);