Flutter學(xué)習(xí)筆記十——垂直布局Column組件的使用

垂直布局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

我們發(fā)現(xiàn)文字是以最長的一段文字居中對齊的,看起來很別扭。那如果想讓文字以左邊開始對齊,只需要加入一個對齊屬性。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:居中對齊。

主軸和副軸的辨識

在設(shè)置對齊方式的時候還有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默認(rèn)以最長的一段文字居中對齊,想要讓文字相對于水平方向居中可以添加Center()實現(xiàn)。
示例代碼:

 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(靈活布局)的使用。比如想讓中間區(qū)域變大,而頭部區(qū)域和底部根據(jù)文字所占空間進(jìn)行顯示。
示例代碼:

 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
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 線性布局Row和Column 所謂線性布局,即指沿水平或垂直方向排布子Widget。Flutter中通過Row和C...
    CQ_TYL閱讀 3,484評論 0 4
  • 前言 本文的目的是為了讓讀者掌握不同布局類Widget的布局特點,分享一些在實際使用過程遇到的一些問題,在《Flu...
    xqqlv閱讀 5,405評論 0 18
  • Flutter中的布局容器主要分為兩類:只能包含一個子Widget的布局容器和可以包含多個子Widget的容器,下...
    彡廿閱讀 2,549評論 0 19
  • 線性布局Row和Column彈性布局Felx 線性布局Row和Column 所謂線性布局,即指沿水平或垂直方向排布...
    lltree閱讀 699評論 0 0
  • 你永遠(yuǎn)不知道孩子有多愛你 前兩天,在蘭州市的一輛公交車上,一位媽媽因為太累,上車就睡著了。坐在她旁邊的兒子,...
    海海_5fee閱讀 444評論 0 1

友情鏈接更多精彩內(nèi)容