【问题标题】:How Flutter's container size is determinedFlutter 的容器大小是如何确定的
【发布时间】:2020-09-24 18:37:18
【问题描述】:

我是 Flutter 的新手,我对容器的大小感到非常困惑。 我从文档以及所有阅读和教程中都无法理解容器的大小是如何设置的,以及什么参数获胜以及何时获胜。 例如,当一个容器在 Expanded 内部但它具有宽度和高度时,它的大小或者如果一个容器有一个子容器具有宽度和高度,那么它是否会缩小到它自己的子大小。 这么多组合 是否有适用于所有情况的某种类型或规则?

【问题讨论】:

    标签: flutter


    【解决方案1】:

    以下是来自 Flutter 官方文档的引用:

    “总结:容器尝试,为了:遵守对齐方式,根据子项调整自身大小,遵守宽度、高度和约束,扩展以适应父项,尽可能小。” (更具体)[https://api.flutter.dev/flutter/widgets/Container-class.html]

    例如,如果您为Container 设置了高度和宽度,但它被放置在Expanded 小部件内。它首先会根据高度和宽度调整自己的大小。但是,Expanded(作为父级)小部件将为Container 提供一个新约束,使其扩展以填充空间(由Expanded 指定)。如果将 BoxConstraints 传递到 Containerconstraints 属性中,这也适用。官方文档说:

    ...父级提供有界约束,然后容器尝试扩展以适应父级...

    这与在“尊重宽度、高度和约束”之后说“扩展以适应父级”的部分相关

    在第二个示例中,Container 将根据高度和宽度调整自身大小。它会首先尝试根据孩子调整自己的大小,然后继续遵守宽度和高度,使其大小达到指定的宽度和高度。

    根据我的经验,当您开始使用更多容器时,它会自然而然地出现。我刚开始的时候也很困惑。

    【讨论】:

    • Expanded 不能是 Container 的直接子级。您的意思是 Flex 吗?还提到您可以通过将 BoxConstraints 实例传递给容器来更改约束
    • 这个问题提到Expanded作为父母而不是作为孩子,我的回答也是。我将添加BoxConstraints 部分
    • 对不起兄弟。这是我的错
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-19
    • 2023-03-30
    • 2015-02-15
    • 2021-10-18
    • 2018-12-01
    • 1970-01-01
    相关资源
    最近更新 更多