SizedBox

一个指定宽高的盒子组件

SizedBox会强制其子组件使用指定的宽高。如果不符合SizedBox父组件的约束,那么设置的值将失效,比如SizedBox的父组件是屏幕或者是另一个SizedBox,那么这些父组件会施加一个紧约束强制要求子组件的宽高和这些父组件一致。可以通过将SizedBox包裹在一个松约束(允许子组件的宽高在0到父组件的宽高中的任意值)的组件中来解决这些问题,如Center或者Align组件等。

如果宽高中有设置为null值的,那么SizedBox将会尝试在对应维度上使用子组件的大小,如果子组件的大小依赖于SizedBox的大小,那么必须提供对应的宽高值。

如果没有指定子组件,SizedBox将会在父组件约束的情况下尽可能接近指定的高度和宽度。如果宽度/宽度设置为null或者未指定,那么会被视为0。

可以使用SizedBox.expand构造函数来创建一个自动适应父级大小的SizedBox,这等同于将宽度和高度设置为double.infinity

示例

const SizedBox(
  width: 200.0,
  height: 300.0,
  child: Card(child: Text('Hello World!')),
)

构造函数

//普通指定宽高创建SizedBox
SizedBox.new({
  Key? key, 
  double? width, 
  double? height, 
  Widget? child
})

//指定无限宽高的SizedBox
SizedBox.expand({
  Key? key, 
  Widget? child
})

//根据传入的Size对象创建SizedBox
SizedBox.fromSize({
  Key? key, 
  Widget? child, 
  Size? size
})


//创建在父组件约束情况下尽可能小的SizedBox
SizedBox.shrink({
  Key? key, 
  Widget? child
})


//创建宽高相等的方型SizedBox
SizedBox.square({
  Key? key, 
  Widget? child, 
  double? dimension
})

属性

属性名属性类型说明
childWidget?子组件
heightdouble?
widthdouble?