我对此感到很好奇。我看到了很多使用Container()
进行虚拟隐藏小部件的示例,例如,加载完成后,我们使用setState(() { _isLoaded = true; });
。
所以我们可以使用这样的状态,对吗?
return _isLoaded ? Container() : LoaderWidget();
或者,也许使用
SizedBox()
实际上更好,因为它不需要太多参数并且经常用于填充?return _isLoaded ? SizedBox() : LoaderWidget();
还是我错了?
最佳答案
如果用作占位符:
容器如果小部件没有子,没有高度,没有宽度,没有约束并且没有对齐,但是父级提供了边界约束,那么Container会扩展以适合父级提供的约束。
SizedBox 如果窗口小部件没有子级,没有高度,没有宽度,则宽度和高度为零。
因此,SizedBox()
可以更多地用作语法占位符。
另外,请注意SizedBox()是const
构造函数,而Container()不是。第一个允许编译器创建更有效的代码。