我对这个很好奇。我已经看到很多使用 Container()
作为虚拟隐藏小部件的示例,例如,当加载完成时,然后我们 setState(() { _isLoaded = true; });
.
所以我们可以像这样使用状态,对吧?
return _isLoaded ? Container() : LoaderWidget();
或者也许使用 SizedBox()
实际上更好,因为它不需要太多参数并且通常用于填充?
return _isLoaded ? SizedBox() : LoaderWidget();
还是我错了?
最佳答案
如果用作占位符:
Container 如果 widget 没有 child ,没有高度,没有宽度,没有约束,也没有对齐,但是父级提供了有界约束,那么 Container 会扩展以适应父级提供的约束。
SizedBox 如果小部件没有 child ,没有高度,没有宽度,则宽度和高度为零。
因此,SizedBox()
更像是一个句法占位符。
另外,请注意 SizedBox()是一个 const
构造函数但是 Container()不是。第一个允许编译器创建更高效的代码。
关于Flutter Container() vs SizedBox() for dummy empty,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57703182/