Flutter开发(十)—— 五种布局之Card Widget 卡片布局

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/RedKeyer/article/details/89552161

代码示例:
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 将其图像填充完全。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/RedKeyer/article/details/89552161