前言

关于flutter的垂直布局(Column)和水平布局(Row)和流式布局(Wrap)属性介绍和简单使用。废话不多说,上才艺。


Column属性介绍
属性 作用
MainAxisAlignment 主轴对准
CrossAxisAlignment 横轴对齐
MainAxisSize 主轴尺寸
TextDirection 文字方向
VerticalDirection 垂直方向
TextBaseline 文字基线

Row属性介绍

属性 作用
MainAxisAlignment 主轴对准
CrossAxisAlignment 横轴对齐
MainAxisSize 主轴尺寸
TextDirection 文字方向
VerticalDirection 垂直方向
TextBaseline 文字基线

Warp属性介绍

属性 作用
direction 方向
alignment 对齐
spacing 间距
runAlignment 运行对齐
runSpacing 运行间距
crossAxisAlignment 横轴对齐
textDirection 文字基线
verticalDirection 垂直方向
clipBehavior 裁剪

提示:以下是三种布局的的基本使用

二、使用步骤

1.Column

代码如下(示例):

Container(
            height: 300,
            child: Column(
              // mainAxisSize: MainAxisSize.min,//主轴上的可用空间最小化
              mainAxisSize: MainAxisSize.max,//主轴上的可用空间最大化
              // textDirection:TextDirection.rtl,//文字从右向左
              textDirection:TextDirection.ltr,//文字从左向右
              mainAxisAlignment: MainAxisAlignment.center, //主轴居中
              crossAxisAlignment: CrossAxisAlignment.center, //横轴居中
              // verticalDirection:VerticalDirection.down,//从顶部开始,并垂直堆叠到底部
              verticalDirection:VerticalDirection.up,//从底部开始,并垂直朝顶部堆叠
              // textBaseline:TextBaseline.alphabetic,//用于对齐字母字符的字形底部的水平线
              textBaseline:TextBaseline.ideographic,//用于对齐表意字符的水平线
              children: <Widget>[
                Container(
                  width: 100,
                  height: 100,
                  color: Colors.redAccent,
                  alignment: Alignment.center,
                  child: Text('1 redAccent'),
                ),
                Container(
                  width: 100,
                  height: 100,
                  color: Colors.greenAccent,
                  alignment: Alignment.center,
                  child: Text('2 greenAccent'),
                ),
                Container(
                  width: 100,
                  height: 100,
                  color: Colors.lightBlueAccent,
                  alignment: Alignment.center,
                  child: Text('3 lightBlueAccent'),
                ),
              ],
            ),
          ),

具体效果:
在这里插入图片描述

1.Row

代码如下(示例):

Container(
            height: 100,
            child: Row(
              // mainAxisSize: MainAxisSize.min,//主轴上的可用空间最小化
              mainAxisSize: MainAxisSize.max,//主轴上的可用空间最大化
              // textDirection:TextDirection.rtl,//文字从右向左
              textDirection:TextDirection.ltr,//文字从左向右
              mainAxisAlignment: MainAxisAlignment.center, //主轴居中
              crossAxisAlignment: CrossAxisAlignment.center, //横轴居中
              // verticalDirection:VerticalDirection.down,//从顶部开始,并垂直堆叠到底部
              verticalDirection:VerticalDirection.up,//从底部开始,并垂直朝顶部堆叠
              // textBaseline:TextBaseline.alphabetic,//用于对齐字母字符的字形底部的水平线
              textBaseline:TextBaseline.ideographic,//用于对齐表意字符的水平线
              children: <Widget>[
                Container(
                  width: 100,
                  height: 100,
                  color: Colors.redAccent,
                  alignment: Alignment.center,
                  child: Text('1 redAccent'),
                ),
                Container(
                  width: 100,
                  height: 100,
                  color: Colors.greenAccent,
                  alignment: Alignment.center,
                  child: Text('2 greenAccent'),
                ),
                Container(
                  width: 100,
                  height: 100,
                  color: Colors.lightBlueAccent,
                  alignment: Alignment.center,
                  child: Text('3 lightBlueAccent'),
                ),
              ],
            ),
          ),

具体效果:
在这里插入图片描述

1.Wrap

代码如下(示例):

Container(
            height: 300,
            child: Wrap(
              direction: Axis.vertical, //方向垂直
              alignment: WrapAlignment.center, //居中对齐
              spacing: 5.0,//间距
              runAlignment: WrapAlignment.center,
              runSpacing: 15.0,//横轴上至少间隔15.0个逻辑像素
              textDirection: TextDirection.ltr, //文字从左向右
              crossAxisAlignment: WrapCrossAlignment.center, // clipBehavior: RenderWrap.runtimeType,
              children: <Widget>[
                Container(
                  width: 100,
                  height: 100,
                  color: Colors.redAccent,
                  alignment: Alignment.center,
                  child: Text('1'),
                ),
                Container(
                  width: 100,
                  height: 100,
                  alignment: Alignment.center,
                  color: Colors.greenAccent,
                  child: Text('2'),
                ),
                Container(
                  width: 100,
                  height: 100,
                  alignment: Alignment.center,
                  color: Colors.lightBlueAccent,
                  child: Text('3'),
                ),
                Container(
                  width: 100,
                  height: 100,
                  alignment: Alignment.center,
                  color: Colors.greenAccent,
                  child: Text('4'),
                ),
                Container(
                  width: 100,
                  height: 100,
                  alignment: Alignment.center,
                  color: Colors.lightBlueAccent,
                  child: Text('5'),
                ),
                Container(
                  width: 100,
                  height: 100,
                  alignment: Alignment.center,
                  color: Colors.redAccent,
                  child: Text('6'),
                ),
              ],
            ),
          ),

具体效果:
在这里插入图片描述

总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,如果对你有用的话,可以点赞加关注哦。如有不足之处,可在下方评论留言。

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐