flutter组件之Expanded

flutter组件之Expanded

自我理解:

如果你了解android开发的话,这个属性就相当于在LinerLayout子空间中的 layout_weight 属性(布局权重)
使用“Expanded”小部件可使“Row”,“column”或“ Flex”的子级展开以填充主轴上的可用空间(例如,水平放置为“Row”或垂直放置为“Column”)。 如果扩展了多个子项,则会根据伸缩因子在可用空间之间进行分配。
[官网api地址]https://api.flutter.dev/flutter/widgets/Expanded-class.html
api说的非常明白,需要自备梯子

上代码(这个例子我自己写的,api中的代码更标准些)

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';

class ExpandedDemo extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: SafeArea(
          child: Container(
        decoration: BoxDecoration(color: Color.fromRGBO(0, 0, 0, 1)),
        width: double.infinity,
        child: Row(
          children: <Widget>[
            _MyWidget(),
            Expanded(//flex 弹性因子,说白了就是当布局中有两个Expanded,可以用这个属性控制他们的大小占比
              flex: 2,
              child: _MyWidget2(),
            ),
            _MyWidget3(),
            Expanded(
              flex: 1,
              child: _MyWidget4(),
            )
          ],
        ),
      )),
    );
  }
}

class _MyWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new Container(
      child: Text('11111'),
      decoration: BoxDecoration(color: Color.fromRGBO(255, 0, 0, 1)),
    );
  }
}

class _MyWidget2 extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new Container(
      child: Text('22222'),
      decoration: BoxDecoration(color: Color.fromRGBO(0, 255, 0, 1)),
    );
  }
}

class _MyWidget3 extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new Container(
      child: Text('33333'),
      decoration: BoxDecoration(color: Color.fromRGBO(0, 0, 255, 1)),
    );
  }
}

class _MyWidget4 extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new Container(
      child: Text('444444'),
      decoration: BoxDecoration(color: Color.fromRGBO(255, 0, 100, 1)),
    );
  }
}

效果图

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值