美文网首页Flutter圈子FlutterFlutter中文社区
Flutter学习笔记十——垂直布局Column组件的使用

Flutter学习笔记十——垂直布局Column组件的使用

作者: Love零O | 来源:发表于2019-03-26 17:12 被阅读14次

    垂直布局Column Widget使子元素(子组件)垂直排列。

    Column基本用法

    示例代码:

       body: Column(
              children: <Widget>[
                Text('let the crowd follow you.'),
                Text('The code word is ‘Rochambeau,’ dig me?'),
                Text('Rochambeau!'),
              ],
            ),
    

    效果如图:

    column1.jpg
    我们发现文字是以最长的一段文字居中对齐的,看起来很别扭。那如果想让文字以左边开始对齐,只需要加入一个对齐属性。crossAxisAlignment: CrossAxisAlignment.start,
    body: Column(
              crossAxisAlignment: CrossAxisAlignment.start,
              children: <Widget>[
                Text('let the crowd follow you.'),
                Text('The code word is ‘Rochambeau,’ dig me?'),
                Text('Rochambeau!'),
              ],
            ),
    

    效果如图:


    column2.jpg
    • CrossAxisAlignment.star:居左对齐。
    • CrossAxisAlignment.end:居右对齐。
    • CrossAxisAlignment.center:居中对齐。

    主轴和副轴的辨识

    在设置对齐方式的时候还有mainAxisAlignment属性,意思就是主轴对齐方式,那什么是主轴,什么又是幅轴呢。

    • main轴:如果你用column组件,那垂直就是主轴,如果你用Row组件,那水平就是主轴。
    • cross轴:cross轴我们称为幅轴,是和主轴垂直的方向。比如Row组件,那垂直就是幅轴,Column组件的幅轴就是水平方向的。

    上面的代码增加垂直方向居中,因为用的是Column组件,所以就是主轴方向,这时候要用的就是主轴对齐:
    mainAxisAlignment: MainAxisAlignment.center,
    示例代码:

    body: Column(
              crossAxisAlignment: CrossAxisAlignment.start,
              mainAxisAlignment: MainAxisAlignment.center,
              children: <Widget>[
                Text('let the crowd follow you.'),
                Text('The code word is ‘Rochambeau,’ dig me?'),
                Text('Rochambeau!'),
              ],
            ),
    

    效果如图:


    column3.jpg

    水平方向相对屏幕居中

    Column Widget默认以最长的一段文字居中对齐,想要让文字相对于水平方向居中可以添加Center()实现。
    示例代码:

     body: Center(
                child: Column(
              crossAxisAlignment: CrossAxisAlignment.start,
              mainAxisAlignment: MainAxisAlignment.center,
              children: <Widget>[
                Text('let the crowd follow you.'),
                Text('The code word is ‘Rochambeau,’ dig me?'),
                Text('Rochambeau!'),
              ],
            )),
    

    效果如图:


    column4.jpg

    Expanded属性的使用

    Column Widget中Expanded(灵活布局)的使用。比如想让中间区域变大,而头部区域和底部根据文字所占空间进行显示。
    示例代码:

     body: Column(
              crossAxisAlignment: CrossAxisAlignment.start,
              mainAxisAlignment: MainAxisAlignment.center,
              children: <Widget>[
                Text('let the crowd follow you.'),
                Expanded(child: Text('The code word is ‘Rochambeau,’ dig me?')),
                Text('Rochambeau!'),
              ],
            ),
    

    效果如图:


    column5.jpg

    相关文章

      网友评论

        本文标题:Flutter学习笔记十——垂直布局Column组件的使用

        本文链接:https://www.haomeiwen.com/subject/shagvqtx.html