dart - Flutter 根 Column 小部件扩展到整个屏幕,为什么?

标签 dart flutter

我是 flutter/dart 的新手,刚刚找到我的脚。

一直在玩一个非常简单的测试 UI。我正在使用 Material App 和 Scaffold 小部件,并将 Column 小部件放置在 Scaffold 小部件的“主体”中。当我使用检查小部件工具时,它会自动扩展以占据整个屏幕。

这是代码..

class TestWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Column(
        children: [
          Text('bob'),
        ],
      ),
    );
  }
}

如果我随后嵌套一个 Column 小部件,它不会像其父级那样展开以占用垂直空间,我可以更改它并通过像这样使用 Expanded 小部件来占用空间..

class TestWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Column(
        children: [
          Text('bob'),
          Expanded(
            child: Column(children: [
              Text('bob2'),
            ]),
          ),
        ],
      ),
    );
  }
}

我只是想了解为什么父“根”列在默认情况下占用了它可以占用的所有空间,但是当我删除 Expanded 小部件时,嵌套列却没有?

一定是一些简单的东西,但是当我浏览文档并理解时我没有看到它。

非常感谢您的帮助。

最佳答案

这是 Flutter 对根 widget 应用的布局约束。

关于dart - Flutter 根 Column 小部件扩展到整个屏幕,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54422103/

相关文章:

flutter - Dockerfile Flutter Web 用于生产 - 不适用于测试或开发

flutter - "This function has a return type of ' 小部件 ', but doesn' 以返回语句结束。”

node.js - 如何在 Flutter android 应用程序中发送推送通知?

flutter - 如何在 flutter web 中导入依赖项?

flutter - 如何使用Dart/Flutter在Cloud Firestore中存储简单矩阵?

flutter - 连接过滤器 : Error initializing output stream

flutter - 在 Flutter 中将图像添加到 ListTile

flutter - 我们为什么使用 RiverpodGenerator

android - 将来使用 catchError 捕获错误并抛出另一种类型

dart - 在第一页加载时,我如何从指令 (AngularDart) 中知道当前路线是什么?