使用 ConstrainedBox 和 Container 小部件为其子框提供约束有什么区别?

Mos*_*ibi 7 dart flutter flutter-layout

我发现Container()ConstrainedBox()小部件之间的唯一区别(如果我们想约束它的子部件)是小部件中有更多属性Container()来自定义其子部件,但是还有其他区别吗?是否有任何性能差异以及什么时候使用什么是有效的?

cre*_*not 11

Container其本身不执行任何操作。它只是一个将功能委托给其他小部件的实用小部件。这意味着contraintsa 的参数严格Container等价于。ConstrainedBox

\n

如果你看一下 的源代码Container,你会发现以下内容:

\n
    if (constraints != null)\n      current = ConstrainedBox(constraints: constraints, child: current);\n
Run Code Online (Sandbox Code Playgroud)\n

\xe2\x86\x92 没有区别。

\n
Container(\n  constraints: constraints,\n  child: child,\n)\n// does strictly the same as\nConstrainedBox(\n  constraints: constraints,\n  child: child,\n)\n
Run Code Online (Sandbox Code Playgroud)\n