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)))); } }
According to theContainer class documentation…
如果窗口小部件没有子级且没有对齐方式,但是提供了高度,宽度或约束,则在给定这些约束和父级约束的组合的情况下,容器将尝试尽可能小。
而是,小部件正在尝试尽可能大(父级大小)而不是50x50。我了解我可以使用UnconstrainedBox,但我正在寻找这种行为的解释。 getting](https://i.stack.imgur.com/xqk6E.png)](https://i.stack.imgur.com/xqk6E.png)
问题是您的根容器。
通过设置不带的width + height alignment,Container会强制其子级填充可用空间。
alignment
如果要让该子项占用最少的空间,则需要指定根容器,以使其在子边界内对齐子项。
Container( width: 250, height: 250, alignment: Alignment.center, child: Whatever(), );