- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在这个问题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?
最佳答案
IntrinsicHeight和 MediaQuery有两个完全不同的目的。
MediaQuery提供有关屏幕的信息。然后由您使用此信息来更改您的 UI(尽管我建议使用 double.infinity
或 LayoutBuilder)。
IntrinsicHeight是一个布局实用程序。它用于当您希望小部件具有其“理想的最小”尺寸而不是实际的最小尺寸时。
IntrinsicHeight 的常见用例适用于当您想要 Row 中的所有项目时当“高度”是最大项目的尺寸时具有相同的“高度”。
如果您的项目的大小,然后使用 IntrinsicHeight是实现这一目标的唯一解决方案。
这通常看起来像:
IntrinsicHeight(
child: Row(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [ Whatever(), AnotherItem() ],
),
)
关于flutter - MediaQuery 与 IntrinsicHeight,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60069700/
在这个问题Whats the difference between double.infinity and MediaQuery? Rémi Rousselet 建议使用 IntrinsicHeigh
我在 bottomNavigationBar 中有这段代码” bottomNavigationBar: BottomAppBar( child: IntrinsicHeig
我是一名优秀的程序员,十分优秀!