flutter3.0学习笔记

空间适配FittedBox

Preview
  • 空间适配(FittedBox)

空间适配(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 的最大宽度会溢出
    ),
 ),