Flutter布局之Card使用

作者: TryEnough | 来源:发表于2019-01-09 11:44 被阅读7次

    原文链接

    Flutter教程推荐


    效果图

    TryEnough

    代码

    import 'package:flutter/rendering.dart' show debugPaintSizeEnabled;
    import 'package:flutter/material.dart';
    
    void main() {
    //  debugPaintSizeEnabled = true;
      runApp(MyApp());
    }
    
    class MyApp extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          title: 'Flutter Demo',
          theme: ThemeData(
            primarySwatch: Colors.blue,
          ),
          home: MyHomePage(title: 'Flutter Demo Home Page'),
        );
      }
    }
    
    class MyHomePage extends StatefulWidget {
      MyHomePage({Key key, this.title}) : super(key: key);
    
      final String title;
    
      @override
      _MyHomePageState createState() => _MyHomePageState();
    }
    
    class _MyHomePageState extends State<MyHomePage> {
      @override
      Widget build(BuildContext context) {
        //关键代码
        var card = new SizedBox(
          height: 210.0,  //设置高度
          child: new Card(
            elevation: 15.0,  //设置阴影
            shape: const RoundedRectangleBorder(borderRadius: BorderRadius.all(Radius.circular(14.0))),  //设置圆角
            child: new Column(  // card只能有一个widget,但这个widget内容可以包含其他的widget
              children: [
                new ListTile(
                  title: new Text('标题',
                      style: new TextStyle(fontWeight: FontWeight.w500)),
                  subtitle: new Text('子标题'),
                  leading: new Icon(
                    Icons.restaurant_menu,
                    color: Colors.blue[500],
                  ),
                ),
                new Divider(),
                new ListTile(
                  title: new Text('内容一',
                      style: new TextStyle(fontWeight: FontWeight.w500)),
                  leading: new Icon(
                    Icons.contact_phone,
                    color: Colors.blue[500],
                  ),
                ),
                new ListTile(
                  title: new Text('内容二'),
                  leading: new Icon(
                    Icons.contact_mail,
                    color: Colors.blue[500],
                  ),
                ),
              ],
            ),
          ),
        );
        return Scaffold(
          appBar: AppBar(
          title: Text(widget.title),
          elevation: 5.0, // tabbar的阴影
        ),
          body: Center(
            child: card,
          ),
        );
      }
    }
    

    分析

    • 1.Card接受单个widget,但该widget可以是Row,Column或其他包含子级列表的widget
    • 2.Card内容不能滚动
    • 3.shape: const RoundedRectangleBorder(borderRadius: BorderRadius.all(Radius.circular(14.0)))可以设置半径为14的圆角

    相关文章

      网友评论

        本文标题:Flutter布局之Card使用

        本文链接:https://www.haomeiwen.com/subject/uzeirqtx.html