dart - Flutter root Column 小部件扩展到整个屏幕,为什么?
问题描述
我是颤振/飞镖的新手,我只是在寻找我的脚。
一直在玩一个非常简单的测试 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'),
]),
),
],
),
);
}
}
我只是想了解为什么父“根”列默认占用所有空间,但是当我删除扩展小部件时,嵌套列没有?
一定很简单,但是当我浏览文档并理解时,我没有看到它。
非常感谢您的帮助。
解决方案
这是 Flutter 应用于根小部件的布局约束。
推荐阅读
- php - PHP - 在数据中获取 base64
- javascript - 通过纯 JavaScript 添加和删除 id
- python - 是否有自动在运算符周围添加空格的 Python IDE?
- java - Tomcat/Spring Boot 如何搜索 application.properties?
- django - 我如何知道何时增加我的 RDS 实例的大小。将 Postgres 与 django 一起使用
- python - 遇到错误后如何留在调试器中?
- aws-lambda - AWS Lambda 出现间歇性 502 或 504(端点请求超时)错误
- c# - using 语句中的“访问已处置的闭包”警告
- javascript - PHP和Ajax - 当值不为空时如何将文本区域的值传输到文本框
- android - 被 Play Protect 屏蔽