我对此感到很好奇。我看到了很多使用Container()进行虚拟隐藏小部件的示例,例如,加载完成后,我们使用setState(() { _isLoaded = true; });
所以我们可以使用这样的状态,对吗?

return _isLoaded ? Container() : LoaderWidget();

或者,也许使用SizedBox()实际上更好,因为它不需要太多参数并且经常用于填充?
return _isLoaded ? SizedBox() : LoaderWidget();

还是我错了?

最佳答案

如果用作占位符:

容器如果小部件没有子,没有高度,没有宽度,没有约束并且没有对齐,但是父级提供了边界约束,那么Container会扩展以适合父级提供的约束。

SizedBox 如果窗口小部件没有子级,没有高度,没有宽度,则宽度和高度为零。

因此,SizedBox()可以更多地用作语法占位符。

另外,请注意SizedBox()const构造函数,而Container()不是。第一个允许编译器创建更有效的代码。

10-07 13:14