dart - Flutter Renderboxes 传递 Infinity 高度?

标签 dart flutter

我对 Flutter 的渲染框感到困惑。 这是我的理解:布局算法从根开始,向下遍历小部件树,将约束传递给 child 。 Flex boxes,在它们的滚动方向上有边界约束,试图匹配它们的父约束。

考虑以下代码:

Widget build(BuildContext context) {
    return LayoutBuilder(builder: (context, constraints) {
      print("Parent");
      print(constraints.maxWidth);
      print(constraints.maxHeight);
      return Column(children: [
        LayoutBuilder(builder: (context, constraints) {
          print("Child");
          print(constraints.maxWidth);
          print(constraints.maxHeight);
          return SizedBox(
            height: 12,
          );
        })
      ]);
    });
  }

这打印

flutter: Parent
flutter: 320.0
flutter: 568.0
flutter: Child
flutter: 320.0
flutter: Infinity

高度限制怎么突然变成无穷大了? 它不应该与其父级匹配并且是 568.0 吗?

最佳答案

LayoutBuilder 父级大小很重要,如果父级大小不明确,约束大小将是无穷大。例如,如果您使用脚手架包裹小部件,LayoutBuilder 会提供精确的尺寸。

关于dart - Flutter Renderboxes 传递 Infinity 高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54603633/

相关文章:

匹配英文、特殊字符和表情符号的正则表达式

dart - 将 json 数据(多项)保存到 map 中

flutter - 如何在 flutter 中将元素推到最右边

flutter - Admob 的广告加载 Flutter 时视频卡住

flutter - 防止覆盖抖动值

dart - 在contenteditable div元素中设置和获取选择范围/插入位置( Dart )

xcode - 重复的插件 key : FLTGoogleMapsPlugin

dart - Flutter "Mapping values are not allowed here"包获取时报错

dart - 父小部件的 setState 不会更新子部件的值

android-studio - 已安装 flutter !但仍然显示 “Flutter plugin not installed; this adds Flutter specific functionality”