容器尺寸限制仅在脚手架上有效

时间:2020-01-27 09:17:06

标签: flutter dart

我认为答案可能很简单,但我在这里找不到。 当不是支架的子代时,为什么忽略了容器的尺寸限制。因此,这将显示预期的结果:

    return Scaffold(
      body: Container(
        height: 10,
        width: 10,
        color: Colors.green,
      ),
    );

但是会显示全屏容器:

    return Container(
        height: 10,
        width: 10,
        color: Colors.green,
    );

请赐教!

1 个答案:

答案 0 :(得分:0)

这是由于约束条件不同所致。

考虑800x600的屏幕。

传递给runApp的第一个小部件将受到以下约束:

BoxConstraint(
  minWidth: 800,
  maxWidth: 800,
  minHeight: 600,
  maxHeight: 600,
)

这将强制该小部件填充屏幕。

从那里,通过添加Scaffold,它将“松开”约束,然后变为:

BoxConstraint(
  minWidth: 0,
  maxWidth: 800,
  minHeight: 0,
  maxHeight: 600,
)

这允许小部件小于全屏。

如果您想要的行为类似于Scaffold,但没有它,则可以执行以下操作:

runApp(
  Center(
    child: Container(color: Colors.red, width: 42, height: 42),
  ),
);