Flutter——最详细的Column(纵向)布局使用

Column简介

排布方向为竖向(纵向)的布局,可容纳多个组件;

属性作用
mainAxisAlignment主轴对齐
crossAxisAlignment横轴对齐
textBaseline文字基线
textDirection竖直方向
mainAxisSize主轴尺寸
children子布局单位:(数组)
  • 创建一个纵向排列布局
class RowWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Container(
      width: double.infinity,
      height: 100,
      color: Colors.yellow,
      child: Column(
        mainAxisAlignment: MainAxisAlignment.start,
        crossAxisAlignment: CrossAxisAlignment.start,
        children: [
          Container(
            width: 100,
            color: Colors.red,
            child: Text('top'),
          ),
          Container(
            width: 100,
            color: Colors.green,
            child: Text('center'),
          ),
          Container(
            width: 100,
            color: Colors.blueAccent,
            child: Text('bottom'),
          ),
        ],
      ),
    );
  }
}

属性: crossAxisAlignment: CrossAxisAlignment.start
在这里插入图片描述

属性: crossAxisAlignment: CrossAxisAlignment.center
在这里插入图片描述

属性: crossAxisAlignment: CrossAxisAlignment.end
在这里插入图片描述
属性: crossAxisAlignment: CrossAxisAlignment.stretch

相当于子布局宽度铺满

在这里插入图片描述
属性: mainAxisAlignment: MainAxisAlignment.end
在这里插入图片描述
属性: mainAxisAlignment: MainAxisAlignment.center
在这里插入图片描述

属性: mainAxisAlignment: MainAxisAlignment.spaceEvenly
在这里插入图片描述

属性: mainAxisAlignment: MainAxisAlignment.spaceAround
在这里插入图片描述
属性: mainAxisAlignment: MainAxisAlignment.spaceBetween
在这里插入图片描述

常用属性

Expanded(展开)

使用场景:当某子布局需要沿着主轴填充高度时使用,外部包裹Expanded属性

          Expanded(
            child: Container(
              width: 100,
              color: Colors.green,
              child: Text('center'),
            ),
          ),

在这里插入图片描述
可以看到填充了父布局剩余高度。

Expanded:filex属性

使用场景:相当于布局权重,沿着主轴等比分配高度

Column(
        mainAxisAlignment: MainAxisAlignment.start,
        crossAxisAlignment: CrossAxisAlignment.start,
        children: [
          Expanded(
            flex: 1,
            child: Container(
              width: 100,
              color: Colors.red,
              child: Text('top'),
            ),
          ),
          Expanded(
            flex: 2,
            child: Container(
              width: 100,
              color: Colors.green,
              child: Text('center'),
            ),
          ),
          Expanded(
            flex: 1,
            child: Container(
              width: 100,
              color: Colors.blueAccent,
              child: Text('bottom'),
            ),
          ),
        ],
      )

在这里插入图片描述

效果能够看出,center布局的高度,是topbottom布局的两倍。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

怀君

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值