Flutter从入门到跑路 ------ AspectRation、Card、Wrap组件(六)

文章展示了在Flutter中如何使用AspectRation保持宽高比,Card创建卡片组件,以及Wrap实现流式布局。示例代码包括了AspectRation调整子元素比例,Card的内外边距和阴影效果,以及Wrap的主轴方向和间距设置。

AspectRation

根据设置调整子元素child的宽度比
在布局调教允许的范围内尽可能扩展,
widget高度由宽度和比率决定

属性说明
aspectRation宽高比
class AspectRation extends StatelessWidget {
  const AspectRation({Key key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Container(
      child: Center(
        child: Container(
          width: 200,
          child: AspectRatio(aspectRatio: 2.0/1.0,
          child: Text("AspectRation"),
          ),
        ),
      ),
    );
  }
}

Card

card 卡片组件

属性组件
margin外边距
child子组件
ShapeCard阴影效果默认效果圆角的长方形边
class LayoutDemos extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return ListView(
      children: <Widget>[
        Card(
          margin: EdgeInsets.all(10),
          child: Column(
            children: <Widget>[
              AspectRatio(
                aspectRatio: 16/9,
                child: Image.network('http:www.baidu.com',fit: BoxFit.cover),
              ),
              ListTile(
                leading: ClipOval(
                child: Image.network('http:www.baidu.com'',fit: BoxFit.cover,height: 60,width: 60,),
                ),
                title: Text('xxxx'),
                subtitle: Text('xxxxxxx'),
              )
            ],
          ),
        )
      ],
    );
  }
}

Wrap

实现流布局,单行Wrap跟Row一致,单例Wrap与Column一致
Wrap可以设置多行多列

属性说明
direction主轴方向默认水平
alignment主轴对其方式
spacing主轴方向上的间距
textDirection文本方向
vericalDirection定义children摆放顺序
runAlignmentrun的对齐方式
runSpacingrun间距
// wrap
class LayoutDemos extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return Wrap(
      children: <Widget>[
        MyButton('第一行'),
        MyButton('第一行'),
        MyButton('第一行'),
        MyButton('第一行'),
        MyButton('第一行'),
        MyButton('第一行'),
        MyButton('第一行'),
        MyButton('第一行'),
      ],
    );
  }
}

class  MyButton extends StatelessWidget {

  final String text;
  const MyButton(this.text,{Key key}) : super(key: key);
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
   return RaisedButton(
      // onPressed: 
      child: Text('第一季'),
      textColor: Theme.of(context).accentColor,
      onPressed: (){
      // TO do
      },
    );
  }
  
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值