Flutter:“列”小部件在垂直方向上受约束还是不受约束?

时间:2019-02-16 19:07:56

标签: flutter flutter-layout

我们应该认为Column小部件在垂直方向上受约束还是不受约束?

根据Column小部件的文档:

  

当列的内容超过可用空间量时,   列溢出,并且内容被剪切。

据我了解,这意味着“列”小部件在垂直方向上受到约束(或有界)。

另一方面,Center小部件的文档说:

  

如果尺寸不受限制并且相应的尺寸系数为   null,则小部件将在该维度上匹配其子项的大小。

当我将Center小部件放在Column的子级中时,会发生Center小部件缩小其高度以匹配其子级的高度的情况。根据上述文档,这意味着Column小部件在垂直方向上不受限制。

那么哪一个是正确的? Column小部件在垂直方向上是受约束的还是不受约束的?

1 个答案:

答案 0 :(得分:2)

我认为您正在将父约束与子约束混合在一起。

列本身从其父级收到的框约束与其传递给其子级的约束不同:该列的父级可能会限制其高度,但会为其子级赋予无限(不受约束)的高度。因此。

  

据我了解,这意味着“列”小部件在垂直方向受到约束(或限制)。

是的,该列受其父级约束。

  

根据上述文档,这意味着“列”小部件在垂直方向上不受约束。

另一方面,不是列本身而是其子级的高度不受限制。这解释了为什么Center在垂直方向上缩小以匹配其子级。