flutter Container 在Expanded会占用尽可能大的区域

布局特点

一、Container在不设置宽高的情况下,它的size取决于

  1. 如果设置了child,那么它会尽可能小,在没有设置constraints情况下,相当于child的大小。
  2. 如果没有设置child,那么它会尽可能大,在没有设置constraints情况下,相当于parent的大小。

二、Container在设置了宽高的情况下,它在size取决于

  1. 如果同时设置宽高与constraints,优先以设置的宽高为准,如果宽高不在constraints范围内会无效。
  2. 如果设置了child,那么它会尽可能小,相当于constraints的最小值(不管child的大小)。
  3. 如果没有设置child,那么它会尽可能大,相当于constraints的最大值。

constraints是一个约束大小的属性,相当于一个size范围,使Container不会小于最小size,不会超过最大size。

但是,Container在Expanded中,即使设置了child它任然会占用尽可能大的区域:原因是Expanded继承Flexible,其

fit属性设置为:FlexFit.tight。所以如果需要Container占用尽可能少又要按比例占据一块区域,则替换Expanded为Flexible并且修改fit属性为:
FlexFit.loose
posted @ 2023-01-29 10:57  bg_不够  阅读(449)  评论(0编辑  收藏  举报