學(xué)習(xí)Flutter的第五天(組件3)

組件1:MaterialApp菜谣、Container、Text、Image、Icon
組件2:ListView股冗、GridView
組件3:Padding、Row 和蚪、Column止状、Stack、Align攒霹、Positioned
組件4:AspectRatio怯疤、Row 、Button
組件5:Wrap剔蹋、StatelessWidget 、StatefulWidget辅髓、Dialog泣崩、PageView、TextField

3.8 Padding

Padding用來(lái)為子元素添加填充洛口,也就是指定子元素與容器邊界的距離矫付,作用基本上與Android中ViewGroup的padding屬性差不多

名稱 功能
padding 使用EdgeInsets 填充值
child 子組件

EdgeInsets提供了一些方法

  • fromLTRB(double left, double top, double right, double bottom):分別指定四個(gè)方向的填充。

  • all(double value) : 所有方向均使用相同數(shù)值的填充第焰。

  • only({left, top, right ,bottom }):可以設(shè)置具體某個(gè)方向的填充(可以同時(shí)指定多個(gè)方向)买优。

  • symmetric({ vertical, horizontal }):用于設(shè)置對(duì)稱方向的填充,vertical指top和bottom挺举,horizontal指left和right杀赢。

3.9 線性布局(Row 和 Column)

3.9.1 Row

名稱 功能
mainAxisAlignment 主軸(橫向)的排序方式,MainAxisAlignment
crossAxisAlignment 次軸(縱向)的排序方式湘纵,是組件相對(duì)于外層的容器的位置
image-20221010205653939-5406617.png

3.9.2 Column

與Row基本一致脂崔,就是排列順序變成 縱向

3.10 彈性布局(Flex Expanded)

參考內(nèi)容 : https://blog.csdn.net/Misdirection_XG/article/details/122885897

Row 和 Column 都繼承Flex

名稱 功能
direction Axis.vertical 縱向,內(nèi)部元素高度沒(méi)有效果
Axis.horizontal 橫向梧喷,內(nèi)部元素寬度沒(méi)有效果
mainAxisSize MainAxisSize.max:主軸的大小是父容器的大小
MainAxisSize.min:主軸的大小是其子 Widget 大小之和
mainAxisAlignment MainAxisAlignment.start:左對(duì)齊砌左,默認(rèn)值;
MainAxisAlignment.end:右對(duì)齊
MainAxisAlignment.center:居中對(duì)齊
MainAxisAlignment.spaceBetween:兩端對(duì)齊
MainAxisAlignment.spaceAround:每個(gè) Widget 兩側(cè)的間隔相等,與屏幕邊緣的間隔是其他 Widget 之間間隔的一半
MainAxisAlignment.spaceEvently:平均分布各個(gè) Widget铺敌,與屏幕邊緣的間隔與其他 Widget 之間的間隔相等
crossAxisAlignment CrossAxisAlignment.start:與交叉軸的起始位置對(duì)齊汇歹;
CrossAxisAlignment.end:與交叉軸的結(jié)束位置對(duì)齊;
CrossAxisAlignment.center:居中對(duì)齊偿凭;
CrossAxisAlignment.stretch:填充整個(gè)交叉軸产弹;
CrossAxisAlignment.baseline:按照第一行文字基線對(duì)齊
verticalDirection VerticalDirection.down:start 在頂部,end 在底部
VerticalDirection.up:start 在底部弯囊,end 在頂部
textBaseline TextBaseline.alphabetic:與字母基線對(duì)齊取视;
TextBaseline.ideographic:與表意字符基線對(duì)齊硝皂;

Expanded 可以使 Row、Column作谭、Flex 里面的組件填充沿著主軸可利用的空間稽物,如果多個(gè) Widget 都使用了 Expanded 組件,可以使用 Expanded 的 flex 屬性按照比例分配主軸空間折欠,flex 屬性相當(dāng)于 Android LinearLayout 的 weight 屬性

class HomePage extends StatelessWidget {
  const HomePage({super.key});

  @override
  Widget build(BuildContext context) {
    return Row(
      children: [
        // 占一行的1份
        Expanded(flex: 1, child: IconContainer(Icons.home, Colors.cyan)),
        // 占一行的2份
        Expanded(flex: 2, child: IconContainer(Icons.percent, Colors.red))
      ],
      /*
      children: [
        // 左邊占滿
        Expanded(flex: 1, child: IconContainer(Icons.home, Colors.cyan)),
        // 右邊固定寬度
                IconContainer(Icons.percent, Colors.red),
      ],
      */
    );
  }
}

3.11 層疊布局(Stack贝或、Align、Positioned)

3.11.1 stack

Stack即層疊布局控件锐秦,能夠?qū)⒆涌丶盈B排列咪奖。

Stack控件的每一個(gè)子控件都是定位或不定位,定位的子控件是被Positioned控件包裹的酱床。Stack控件本身包含所有不定位的子控件羊赵,其根據(jù)alignment定位(默認(rèn)為左上角)。然后根據(jù)定位的子控件的top扇谣、right昧捷、bottom和left屬性將它們放置在Stack控件上。

名稱 功能
alignment 指的是子Widget的對(duì)其方式罐寨,默認(rèn)情況是以左上角為開(kāi)始點(diǎn)

3.11.2 Positioned

這個(gè)使用控制Widget的位置靡挥,通過(guò)他可以隨意擺放一個(gè)組件,有點(diǎn)像絕對(duì)布局

名稱 功能
left 表示離Stack 左 邊的距離
top 表示離Stack 上 邊的距離
right 表示離Stack 右 邊的距離
bottom 表示離Stack 下 邊的距離
width 如果里面是Row組件鸯绿,需要設(shè)置寬度
height 如果里面是Row組件跋破,需要設(shè)置高度
class HomePage extends StatelessWidget {
  const HomePage({super.key});

  @override
  Widget build(BuildContext context) {
    return Container(
      width: 400,
      height: 400,
      color: Colors.red,
      child: Stack(
        children: [
          // 放到左下位置,
          Positioned(
            left: 0,
            bottom: 0,
            child: Container(
              height: 100,
              width: 100,
              color: Colors.yellow,
            ),
          ),
          // 放到右上位置
          const Positioned(top: 10, right: 10, child: Text("你好Flutter"))
        ],
      ),
    );
  }
}

3.11.3 Align

相對(duì)布局的組件:Align瓶蝴,Align組件允許我們通過(guò)修改它的屬性來(lái)調(diào)整子組件的位置毒返,并且可以根據(jù)子組件的寬高來(lái)確定Align自身的的寬高。

Align屬性用于定義如何對(duì)齊子項(xiàng)舷手。Align默認(rèn)值是 Alignment.center

使用時(shí)饿悬,既可以使用定義好的方位,也可以自定義位置例如:

alignment: Alignment(0, 1) 
或者
alignment: Alignment.center
063529_29022-5416397.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末聚霜,一起剝皮案震驚了整個(gè)濱河市狡恬,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蝎宇,老刑警劉巖弟劲,帶你破解...
    沈念sama閱讀 218,204評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異姥芥,居然都是意外死亡兔乞,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)庸追,“玉大人霍骄,你說(shuō)我怎么就攤上這事〉荩” “怎么了读整?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,548評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)咱娶。 經(jīng)常有香客問(wèn)我米间,道長(zhǎng),這世上最難降的妖魔是什么膘侮? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,657評(píng)論 1 293
  • 正文 為了忘掉前任屈糊,我火速辦了婚禮,結(jié)果婚禮上琼了,老公的妹妹穿的比我還像新娘逻锐。我一直安慰自己,他們只是感情好雕薪,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布昧诱。 她就那樣靜靜地躺著,像睡著了一般蹦哼。 火紅的嫁衣襯著肌膚如雪鳄哭。 梳的紋絲不亂的頭發(fā)上要糊,一...
    開(kāi)封第一講書(shū)人閱讀 51,554評(píng)論 1 305
  • 那天纲熏,我揣著相機(jī)與錄音,去河邊找鬼锄俄。 笑死局劲,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的奶赠。 我是一名探鬼主播鱼填,決...
    沈念sama閱讀 40,302評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼毅戈!你這毒婦竟也來(lái)了苹丸?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,216評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤苇经,失蹤者是張志新(化名)和其女友劉穎赘理,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體扇单,經(jīng)...
    沈念sama閱讀 45,661評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡商模,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片施流。...
    茶點(diǎn)故事閱讀 39,977評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡响疚,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出瞪醋,到底是詐尸還是另有隱情忿晕,我是刑警寧澤,帶...
    沈念sama閱讀 35,697評(píng)論 5 347
  • 正文 年R本政府宣布趟章,位于F島的核電站杏糙,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏蚓土。R本人自食惡果不足惜宏侍,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蜀漆。 院中可真熱鬧谅河,春花似錦、人聲如沸确丢。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,898評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)鲜侥。三九已至褂始,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間描函,已是汗流浹背崎苗。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,019評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留舀寓,地道東北人胆数。 一個(gè)月前我還...
    沈念sama閱讀 48,138評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像互墓,于是被迫代替她去往敵國(guó)和親必尼。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容