Flutter Renderboxes传递无限高度?

问题描述 投票:2回答:1

我对颤动的渲染框感到困惑。这就是我所理解的:布局算法从根开始并遍历小部件树,将约束传递给子节点。 Flex框在其滚动方向的有限约束中尝试匹配其父约束。

请考虑以下代码:

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吗?

dart flutter
1个回答
0
投票

LayoutBuilder父级大小很重要,如果父级的大小不明确,则约束大小将为无穷大。例如,如果使用scaffold包装小部件,LayoutBuilder会提供精确的大小。

© www.soinside.com 2019 - 2024. All rights reserved.