## 属性
字段 | 属性 | 描述 |
---|---|---|
minWidth | double | 最小宽度,默认0.0 |
maxWidth | double | 最大宽度,默认double.infinity |
minHeight | double | 最小高度,默认0.0 |
maxHeight | double | 最大高度,默认double.infinity |
1、tight()
容器的宽度和高度取决于传进来的size
,设定多大就是多大。
BoxConstraints.tight(Size size)
: minWidth = size.width,
maxWidth = size.width,
minHeight = size.height,
maxHeight = size.height;
2、tightFor()
宽度和高度是可选参数,在不传入的情况下能大则大,在传入参数时设定多大就是多大。
const BoxConstraints.tightFor({
double? width,
double? height,
}) : minWidth = width ?? 0.0,
maxWidth = width ?? double.infinity,
minHeight = height ?? 0.0,
maxHeight = height ?? double.infinity;
3、tightForFinite()
宽度和高度默认给最大值,在不传参数的时候能大则大,在传入参数的时候能紧则紧。
const BoxConstraints.tightForFinite({
double width = double.infinity,
double height = double.infinity,
}) : minWidth = width != double.infinity ? width : 0.0,
maxWidth = width != double.infinity ? width : double.infinity,
minHeight = height != double.infinity ? height : 0.0,
maxHeight = height != double.infinity ? height : double.infinity;
4、loose()
最大宽度和最大高度限定于传入的size
,未超出能紧则紧
BoxConstraints.loose(Size size)
: minWidth = 0.0,
maxWidth = size.width,
minHeight = 0.0,
maxHeight = size.height;
5、expand()
宽度和高度是可选参数,在不传入时依赖于父组件, 占用父组件剩余的全部空间,在传入时设定多大就是多大。
1 2 3 4 5 6 7 const BoxConstraints.expand({ double? width, double? height, }) : minWidth = width ?? double.infinity, maxWidth = width ?? double.infinity, minHeight = height ?? double.infinity, maxHeight = height ?? double.infinity;
UnconstrainedBox
UnconstrainedBox
不会对子组件产生任何限制,允许其子组件按照本身大小绘制,那么在我们的平时开发过程中用到该组件会相对较少,一般用于去除多重限制 的时候会有一些帮助。
比如AppBar
中 actions
属性的按钮大小是固定的,如果想要修改就可以借助 UnconstrainedBox
去除父元素的限制。
const BoxConstraints.expand({
double? width,
double? height,
}) : minWidth = width ?? double.infinity,
maxWidth = width ?? double.infinity,
minHeight = height ?? double.infinity,
maxHeight = height ?? double.infinity;