空间适配(FittedBox)
其构造:
const FittedBox({
super.key,
this.fit = BoxFit.contain,// 适配方式
this.alignment = Alignment.center,//对齐方式
this.clipBehavior = Clip.none,//是否裁剪
super.child,
})
适配原理:
- FittedBox 在布局子组件时会忽略其父组件传递的约束,可以允许子组件无限大,即FittedBox 传递给子组件的约束为(0<=width<=double.infinity, 0<= height <=double.infinity)。
- FittedBox 对子组件布局结束后就可以获得子组件真实的大小。
- FittedBox 知道子组件的真实大小也知道他父组件的约束,那么FittedBox 就可以通过指定的适配方式(BoxFit 枚举中指定),让起子组件在 FittedBox 父组件的约束范围内按照指定的方式显示。
FittedBox(
fit: BoxFit.contain,
child: Padding(
padding: const EdgeInsets.symmetric(vertical: 30.0),
child: Row(children: [Text('xx'*30)]), //文本长度超出 Row 的最大宽度会溢出
),
),