flutter布局-1-column

本文深入解析Flutter中Column布局属性,包括mainAxisAlignment、crossAxisAlignment、textBaseline等,详细说明各项属性的作用及默认值,并通过实例展示不同属性设置的效果。

1、mainAxisAlignment:主轴布局方式,column主轴方向是垂直的方向

 
mainaxis.png

默认值:MainAxisAlignment.start:

  1. start ,沿着主轴方向(垂直方向)顶部对齐;
  2. end,沿着主轴方向(垂直方向)底部对齐;
  3. center,沿着主轴方向(垂直方向)居中对齐;
  4. spaceBetween ,沿着主轴方向(垂直方向)平分剩余空间;
  5. spaceAround,把剩余空间平分成n份,n是子widget的数量,然后把其中一份空间分成2份,放在第一个child的前面,和最后一个child的后面;
    6.spaceEvenly,把剩余空间平分n+1份,然后平分所有的空间,请注意和spaceAround的区别;

2、crossAxisAlignment: 交叉轴的布局方式,对于column来说就是水平方向的布局方式

 
crossaxis.png

默认值:CrossAxisAlignment.center,默认是水平居中

  1. start ,垂直主轴方向(水平方向)左侧对齐;
  2. end,垂直主轴方向(水平方向)右侧对齐;
  3. center,垂直主轴方向(水平方向)居中对齐;
  4. stretch ,垂直主轴方向(水平方向)拉伸子child;
  5. baseline,这个要和textBaseline一起使用,;

3、textBaseline:字体的基线(基线这东西一直没搞懂,具体详见下一章Row,效果更明显,垂直方向没啥用,不明显)

默认值:是空的

  1. alphabetic ,用于对齐字母字符底部的水平线;
  2. ideographic,用于对齐表意字符的水平线;

4、textDirection:文字布局方向

默认值:没有,但在row的布局上是左到右的,请看Row的章节

  1. TextDirection.ltr ,从左到右;
  2. TextDirection.rtl,从右到做布局;

5、verticalDirection:就是字child的垂直布局方向,向上还是向下

 
未标题-1.png
new Column(
          mainAxisAlignment: MainAxisAlignment.spaceEvenly, mainAxisSize: MainAxisSize.max, crossAxisAlignment: CrossAxisAlignment.center, verticalDirection: VerticalDirection.down, // textDirection:, textBaseline: TextBaseline.alphabetic, children: <Widget>[ Container( color: Colors.red, height: 30, width: 30, ), Container( color: Colors.blue, height: 30, width: 30, ), Container( color: Colors.yellow, height: 30, width: 30, ), ], ), ), 

默认值:VerticalDirection.down 也就是从上到下的布局

  1. down ,从上向下布局,上图示例我的代码是红、蓝、黄;
  2. up,反过来从下向上布局,反过来就是黄、蓝、红;

转自:https://www.jianshu.com/p/1d003ab6c278

转载于:https://www.cnblogs.com/stroll/p/11585211.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值