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))));
}
}
Run Code Online (Sandbox Code Playgroud)
根据容器类文档 ...
如果窗口小部件没有子级且没有对齐方式,但是提供了高度,宽度或约束,则在给定那些约束和父级约束的组合的情况下,容器将尝试尽可能小。
而是,该小部件正在尝试尽可能大(父级大小)而不是50x50。我知道我可以使用UnconstrainedBox,但是我正在寻找这种行为的解释。
问题是您的根容器。
通过设置不带的width + height alignment,Container会强制其子级填充可用空间。
如果希望该子项占用最少的空间,则需要指定根容器,以使其在其边界内对齐子项。
Container(
width: 250,
height: 250,
alignment: Alignment.center,
child: Whatever(),
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1068 次 |
| 最近记录: |