Flutter開發(十)—— 五種佈局之Card Widget 卡片佈局

代碼示例:
Card接受單個widget,該widget可以是List、Grid、Row,Column或其他包含子級列表的widget,
這裏就簡單放置ImageView。Card我並沒有找到,自身控制大小的屬性。其外邊包裹SizedBox進行大小控制(Flutter中,有很多Widget沒有自帶長寬屬性,估計這也是SizedBox存在的作用)。
Card 通過shape 屬性設置其倒角。具體見以下代碼註釋:

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: "Card",
      home: Scaffold(
        appBar: new AppBar(
          title: new Text("Card 卡片佈局"),
        ),
        body: Center(
          child: new SizedBox(  //SizedBox 控制寬高,並強制應用到child 上
          height: 210.0,
          width: 200.0,
          child: card(),
        )),
      ),
    );
  }
}

Card card() {
  var card = new Card(
    color: Colors.red, //Card 背景顏色 爲了便於識別,設置了紅色 child 設置不全部沾滿時可呈現
    elevation: 10.0, //傳入double值,控制投影效果

    shape: RoundedRectangleBorder(
      // borderRadius: BorderRadius.all(Radius.circular(20.0)),   //設定 Card 的倒角大小
      borderRadius: BorderRadius.only(  //設定 Card 的每個角的倒角大小
          topLeft: Radius.circular(20.0),
          topRight: Radius.zero,
          bottomLeft: Radius.zero,
          bottomRight: Radius.circular(20.0)),
    ),

    clipBehavior: Clip.antiAlias,  //對Widget截取的行爲,比如這裏 Clip.antiAlias 指抗鋸齒
    child: new Image.network("https://dwz.cn/JUbcbckN",
    fit: BoxFit.contain,), //這裏可以配置 List、Grid等多種容器
  );

  return card;
}

展示效果:
下面爲代碼演示的效果圖,其中上下紅色,是爲了演示Card 的 color屬性的作用。這裏可以設置child的 fit: BoxFit 將其圖像填充完全。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章