2019-10-20 Flutter學習(六)Padding Row 組件詳解

今兒個主要學習一下幾個基本組件
Padding Row Column Expended 四個組件

Padding 組件用法

Flutter提供的組件是沒有padding屬性的拍棕,所以在處理內邊距的時候,就需要用到Padding組件來設置容器和子元素之間的間距 缚柏,貼代碼

class LayoutDemo extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Padding(
      padding: EdgeInsets.fromLTRB(0, 0, 10, 0),
      child: GridView.count(
        crossAxisCount: 2,
        childAspectRatio: 1.7,
        children: <Widget>[
          Padding(
            padding: EdgeInsets.fromLTRB(10, 10, 0, 0),
            child: Image.network('https://www.itying.com/images/flutter/1.png',
                fit: BoxFit.cover),
          ),
          Padding(
            padding: EdgeInsets.fromLTRB(10, 10, 0, 0),
            child: Image.network('https://www.itying.com/images/flutter/2.png',
                fit: BoxFit.cover),
          )
        ],
    ));
  }
}

fit的幾個屬性
BoxFit.fill:充滿父容器。 可能會拉伸變形
BoxFit.contain:盡可能大船侧,保持圖片分辨率饱狂。不變形,填不滿
BoxFit.cover:充滿容器竟块,不變形可能會被截斷因宇。
BoxFit.none:圖片居中顯示七婴,不改變分大小,可能會被截斷察滑。
BoxFit.fitWidth:圖片填滿寬度,高度可能會被截斷
BoxFit.fitHeight:圖片填滿高度修肠,寬度可能會被截斷
BoxFit.scaleDown:圖片可以完整顯示贺辰,但是可能不能填充滿。

Row組件橫向

void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return MaterialApp(
        home: Scaffold(
      appBar: AppBar(title: Text('FlutterDemo')),
      body: LayoutDemo(),
    ));
  }
}
class LayoutDemo extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Container(
      height: 800.0,
      width: 400.0,
      color: Colors.pink,
      child: Row(
        mainAxisAlignment: MainAxisAlignment.spaceEvenly,    
        crossAxisAlignment: CrossAxisAlignment.start,     //用的比較少
        children: <Widget>[
          IconContainer(Icons.search,color: Colors.blue),
          IconContainer(Icons.home,color: Colors.orange),
          IconContainer(Icons.select_all,color: Colors.red),
        ],
      ),
    );
  }
}
class IconContainer extends StatelessWidget{
  double size=32.0;
  Color color=Colors.red;
  IconData icon;
  IconContainer(this.icon,{this.color,this.size});
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return Container(
      height: 100.0,
      width: 100.0,
      color: this.color,
      child: Center(
        child: Icon(this.icon,size: this.size,color: Colors.white)
      ),
    );
  }
}

MainAxisAlignment.start表示居于Container容器X軸開始位置也就是左側
CrossAxisAlignment.start表示居于Container容器Y軸最上邊
MainAxisAlignment.spaceEvenly表示控件均勻鋪開

Column水平布局跟ROW用法一樣

class LayoutDemo extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Container(
      height: 800.0,
      width: 400.0,
      color: Colors.pink,
      child: Column(    
        mainAxisAlignment: MainAxisAlignment.spaceEvenly,
        crossAxisAlignment: CrossAxisAlignment.end,   
        children: <Widget>[
          IconContainer(Icons.search,color: Colors.blue),
          IconContainer(Icons.home,color: Colors.orange),
          IconContainer(Icons.select_all,color: Colors.red),
        ],
      ),
    );
  }
}

Flutter Expanded 類似 Web 中的 Flex 布局(權重的方式布局)

class LayoutDemo extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Column(
      children: <Widget>[
        Row(
          children: <Widget>[
            Expanded(
              child:   Container(
                height: 180,
                color: Colors.black,
                child: Text('你好Flutter'),
              ),
            )
          ],
        ),
        SizedBox(height: 10),
        Row(
          children: <Widget>[
            Expanded(
              flex: 2,
              child: Container(
                height: 180,
                child: Image.network("https://www.itying.com/images/flutter/2.png",fit: BoxFit.cover),
              )
            ),
            SizedBox(width: 10),
            Expanded(
              flex: 1,
              child: Container(
                height: 180,
                child: ListView(
                  children: <Widget>[
                    Container(
                      height: 85,
                      child: Image.network("https://www.itying.com/images/flutter/3.png",fit: BoxFit.cover),
                    ),
                    SizedBox(height: 10),
                    Container(
                      height: 85,
                      child: Image.network("https://www.itying.com/images/flutter/4.png",fit: BoxFit.cover),
                    )
                  ],
                )
              )
            ),
          ],
        )
      ],
    );
  }
}

flex表示權重比例,同android 中的 weight饲化。
內容比較簡單莽鸭,看代碼 ,就不多說了吃靠。

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末硫眨,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子巢块,更是在濱河造成了極大的恐慌礁阁,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件族奢,死亡現場離奇詭異姥闭,居然都是意外死亡,警方通過查閱死者的電腦和手機越走,發(fā)現死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進店門棚品,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人廊敌,你說我怎么就攤上這事铜跑。” “怎么了骡澈?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵锅纺,是天一觀的道長。 經常有香客問我秧廉,道長伞广,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任疼电,我火速辦了婚禮嚼锄,結果婚禮上,老公的妹妹穿的比我還像新娘蔽豺。我一直安慰自己区丑,他們只是感情好,可當我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布修陡。 她就那樣靜靜地躺著沧侥,像睡著了一般。 火紅的嫁衣襯著肌膚如雪魄鸦。 梳的紋絲不亂的頭發(fā)上宴杀,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天,我揣著相機與錄音拾因,去河邊找鬼旺罢。 笑死旷余,一個胖子當著我的面吹牛,可吹牛的內容都是我干的扁达。 我是一名探鬼主播正卧,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼跪解!你這毒婦竟也來了炉旷?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤叉讥,失蹤者是張志新(化名)和其女友劉穎窘行,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體节吮,經...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡抽高,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了透绩。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片翘骂。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖帚豪,靈堂內的尸體忽然破棺而出碳竟,到底是詐尸還是另有隱情,我是刑警寧澤狸臣,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布莹桅,位于F島的核電站,受9級特大地震影響烛亦,放射性物質發(fā)生泄漏诈泼。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一煤禽、第九天 我趴在偏房一處隱蔽的房頂上張望铐达。 院中可真熱鬧,春花似錦檬果、人聲如沸瓮孙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽杭抠。三九已至,卻和暖如春恳啥,著一層夾襖步出監(jiān)牢的瞬間偏灿,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工钝的, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留菩混,地道東北人忿墅。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓扁藕,卻偏偏與公主長得像沮峡,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子亿柑,可洞房花燭夜當晚...
    茶點故事閱讀 43,446評論 2 348

推薦閱讀更多精彩內容