Flutter - 布局组件-3-Flexible & Expa

2020-09-21  本文已影响0人  tp夕阳武士
属性 类型 可选? 作用
fit FlexFit 命名可选 决定是否局域布局剩余的空间分配给该组件
flex int 命名可选 分配的比例
child Widget @required Flexible内部必须嵌套一个子组件才能使用

Demo

class FlexibleDemo extends StatelessWidget {
  const FlexibleDemo({
    Key key,
  }) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Row(

      /*
      * 在一个横向排布的组件Row中放入两个Flexible组件
      * Flexible 内嵌套了一个child:Container,并且制定宽高,
      * 两个Flexible组件加上一个包裹Text组件的Container,总宽度不占满一行
      * 因为两个Flexible都设置了fit: FlexFit.tight值,
      * 则系统会为Container.Text组件分配完空间后将剩余空间为两个Flexible按比例分配
      * flex:2 , flex:1 , 将剩余空间均分为3等份,
      * 第一个Flexible 占比两份 第二个 Flexible 占比 1分;
      * */

      mainAxisSize: MainAxisSize.max,
      children: [

        Flexible(
          //这个属性会影响到自动分配尺寸
          fit: FlexFit.tight,
          //决定剩余空间的分配比例
          flex: 2,
          child: Container(
            width: 100,
            height: 60,
            color: Colors.red,
            alignment: Alignment.center,
          ),
        ),
        Flexible(
          fit: FlexFit.tight,
          flex: 1,
          child: Container(
            width: 10,
            height: 100,
            color: Colors.orange,
            alignment: Alignment.center,
          ),
        ),
        Container(
          color: Colors.purple,
          child: Text('hello'),
        )
      ],
    );
  }
}

2.Expanded

上一篇 下一篇

猜你喜欢

热点阅读