gpt4 book ai didi

flutter - MediaQuery 与 IntrinsicHeight

转载 作者:行者123 更新时间:2023-12-03 03:09:35 26 4
gpt4 key购买 nike

在这个问题Whats the difference between double.infinity and MediaQuery? Rémi Rousselet 建议使用 IntrinsicHeight Widget 而不是 MediaQuery。我想了解 IntrinsicHeight 相对于 MediaQuery 的优势,因为当我阅读我发现的文档时 -

IntrinsicHeight: This class is relatively expensive, because it adds a speculative layout pass before the final layout phase. Avoid using it where possible. In the worst case, this widget can result in a layout that is O(N²) in the depth of the tree.

所以上面说后者的开销更大,应该尽可能避免,那为什么我们要使用 IntrinsicHeight 而不是简单的 MediaQuery?

最佳答案

IntrinsicHeightMediaQuery有两个完全不同的目的。

  • MediaQuery提供有关屏幕的信息。然后由您使用此信息来更改您的 UI(尽管我建议使用 double.infinityLayoutBuilder)。

  • IntrinsicHeight是一个布局实用程序。它用于当您希望小部件具有其“理想的最小”尺寸而不是实际的最小尺寸时。

    IntrinsicHeight 的常见用例适用于当您想要 Row 中的所有项目时当“高度”是最大项目的尺寸时具有相同的“高度”。

    如果您的项目的大小,然后使用 IntrinsicHeight是实现这一目标的唯一解决方案。

    这通常看起来像:

IntrinsicHeight(
child: Row(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [ Whatever(), AnotherItem() ],
),
)

关于flutter - MediaQuery 与 IntrinsicHeight,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60069700/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com