繁体   English   中英

Flutter 中容器的传入约束。 我弄错了吗?

[英]Incoming constraints for Container in Flutter. Do i get it wrong?

正如文件所说

没有子容器的容器尽量大,除非传入的约束是无界的,在这种情况下,它们尽量小

好吧,当我为内部容器设置无界约束时,我认为它应该as small as possible但它会扩展到整个屏幕。

  body: Container(
    color: Colors.red,
    constraints: const BoxConstraints(
      maxHeight: double.infinity,
      maxWidth: double.infinity,
    ),
    child: Container(
      color: Colors.green,
    ),
  ),

为什么? 在此处输入图像描述

如果您进一步阅读文档,您会看到Container本身的约束 arguments 将覆盖此行为:

没有子容器的容器会尽量大,除非传入的约束是无限的,在这种情况下,它们会尽量小。 带有孩子的容器根据孩子的大小调整自己的大小。 构造函数的宽度、高度和约束 arguments 会覆盖它。

尝试将内部无子ContainerUnconstrainedBox中,您会看到它将缩小到零宽度和高度。

body: 
   Container(
    color: Colors.red,
    width: double.infinity,
    height:double.infinity,
    child: UnconstrainedBox(
      child: Container(
        color: Colors.green,
      ),
    ),
)

虽然红色容器有无限大,你把它放在一个有特定大小的脚手架的身体里。 所以你的红色容器得到特定的尺寸,然后你没有孩子的 grin 容器得到与其父母一样大的尺寸。

红色container的大小实际上取决于它的子容器。

绿色容器没有孩子,那么正如文档所说,除非传入的约束是无限的,否则它将尝试尽可能大,

如果您更改子项,例如 Text 小部件、Column 或其他小部件,它将不会获得最大尺寸。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM