没什么问题但我有点好奇...在flutter中,如果你写一个代码:
child: Container( height: 20, child: Container(), // could be any widget ),
它给出SizedBox for whitespace.的警告。但为什么在我执行此操作时不显示此警告?
SizedBox for whitespace.
child: Container()
我看到许多代码在不显示内容时返回Container()。
Container()
t9eec4r01#
当使用固定高度的嵌套Container时,您看到的警告建议您使用SizedBox小部件,这是因为SizedBox是创建固定大小小部件的更有效的方法,因为它不涉及在渲染树中创建不必要的RenderBox。Container是一个比SizedBox重的Widget,而且SizedBox有一个常量构造函数。-Lint Rule另一方面,当你使用一个没有固定大小的Container时,就不需要使用SizedBox,因为Container本身并不创建一个固定大小的小部件,在这种情况下,Container只会占用渲染其内容所需的空间。常见的情况是将单个Container用作占位符或其他小部件的简单容器,在这些情况下,使用SizedBox没有意义,因为它会不必要地增加布局的复杂性。值得注意的是,您看到的警告只是一个建议,而不是硬性规则,您可以选择忽略警告,并使用固定大小的嵌套Container,如果这是最适合您的用例的解决方案。
Container
SizedBox
RenderBox
cxfofazt2#
Flutter的新版本建议使用SizedBox来处理空白(不包含任何内容,或者只包含给定的宽度或高度,不包含其他内容的空间)。这样你就可以为你的小工具创建一个干净的特定函数。使用容器小部件,您可以获得更多功能,如颜色、装饰等。c
xj3cbfub3#
空容器的原因()不引发警告是因为它是有效的小部件,调用时不会引发错误。这是因为空容器是空的空间,这是UI设计中的有效用例。此外,Flutter的设计非常灵活,能够处理各种UI设计。因此,Flutter不引发空容器()的警告。
3条答案
按热度按时间t9eec4r01#
当使用固定高度的嵌套
Container
时,您看到的警告建议您使用SizedBox
小部件,这是因为SizedBox
是创建固定大小小部件的更有效的方法,因为它不涉及在渲染树中创建不必要的RenderBox
。Container
是一个比SizedBox
重的Widget,而且SizedBox
有一个常量构造函数。-Lint Rule另一方面,当你使用一个没有固定大小的
Container
时,就不需要使用SizedBox
,因为Container
本身并不创建一个固定大小的小部件,在这种情况下,Container
只会占用渲染其内容所需的空间。常见的情况是将单个
Container
用作占位符或其他小部件的简单容器,在这些情况下,使用SizedBox
没有意义,因为它会不必要地增加布局的复杂性。值得注意的是,您看到的警告只是一个建议,而不是硬性规则,您可以选择忽略警告,并使用固定大小的嵌套
Container
,如果这是最适合您的用例的解决方案。cxfofazt2#
Flutter的新版本建议使用SizedBox来处理空白(不包含任何内容,或者只包含给定的宽度或高度,不包含其他内容的空间)。
这样你就可以为你的小工具创建一个干净的特定函数。
使用容器小部件,您可以获得更多功能,如颜色、装饰等。c
xj3cbfub3#
空容器的原因()不引发警告是因为它是有效的小部件,调用时不会引发错误。这是因为空容器是空的空间,这是UI设计中的有效用例。此外,Flutter的设计非常灵活,能够处理各种UI设计。因此,Flutter不引发空容器()的警告。