Flutter Row,Column和Expanded

1.Row

在这里插入图片描述

class HomeContext extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return Container(
      width: 300,
      height: 400,
      color: Colors.cyan,//背景颜色
      child: Row(
        mainAxisAlignment: MainAxisAlignment.spaceAround, //水平布局
        crossAxisAlignment: CrossAxisAlignment.center, //垂直布局
        children: <Widget>[
          iconContainer(Icons.access_alarms, 31, Colors.red), //自定义组件
          iconContainer(Icons.ac_unit, 31, Colors.yellow),
          iconContainer(Icons.account_balance, 31, Colors.blue)
        ],
      ),
    );
  }
}

//自定义按钮组件
class iconContainer extends StatelessWidget {
  IconData icon;
  double size;
  Color color;
  iconContainer(this.icon, [this.size, this.color]);//可变参数
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return Container(
      width: 60,
      height: 60,
      color: this.color,
      child: Center(
        child: Icon(this.icon, size: this.size, color: Colors.white),
      ),
    );
  }
}

Column

在这里插入图片描述

class HomeContext extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return Container(
      width: 300,
      height: 400,
      color: Colors.cyan,//背景颜色
      child: Column(
        mainAxisAlignment: MainAxisAlignment.spaceAround, //主轴布局
        crossAxisAlignment: CrossAxisAlignment.center, //次轴布局
        children: <Widget>[
          iconContainer(Icons.access_alarms, 31, Colors.red), //自定义组件
          iconContainer(Icons.ac_unit, 31, Colors.yellow),
          iconContainer(Icons.account_balance, 31, Colors.blue)
        ],
      ),
    );
  }
}

//自定义按钮组件
class iconContainer extends StatelessWidget {
  IconData icon;
  double size;
  Color color;
  iconContainer(this.icon, [this.size, this.color]);//可变参数
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return Container(
      width: 60,
      height: 60,
      color: this.color,
      child: Center(
        child: Icon(this.icon, size: this.size, color: Colors.white),
      ),
    );
  }
}

3.Expanded

在这里插入图片描述

class HomeContext extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return  Row(
        mainAxisAlignment: MainAxisAlignment.spaceAround, //主轴布局
        crossAxisAlignment: CrossAxisAlignment.center, //次轴布局
        children: <Widget>[
          Expanded(
            flex: 1,
            child: iconContainer(Icons.access_alarms, 31, Colors.blue), //自定义组件,
          ),
          Expanded(
            flex: 2,
            child: iconContainer(Icons.home, 31, Colors.orange), //自定义组件,
          ),
        ],
      );

  }
}

//自定义按钮组件
class iconContainer extends StatelessWidget {
  IconData icon;
  double size;
  Color color;
  iconContainer(this.icon, [this.size, this.color]);//可变参数
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return Container(
      width: 60,
      height: 60,
      color: this.color,
      child: Center(
        child: Icon(this.icon, size: this.size, color: Colors.white),
      ),
    );
  }
}

综合

在这里插入图片描述

class HomeContext extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return Column(
      children: <Widget>[
        Container(
          height: 180,
          color: Colors.black,
        ),
        SizedBox(
          height: 10,
        ),
        Row(
          children: <Widget>[
            SizedBox(width: 10,),
            Expanded(
              flex: 2,
              child: Container(
                height: 180,
                child: Image.network(
                  "http://5b0988e595225.cdn.sohucs.com/images/20171108/e8d0b0ab35b14b33a499d74cbc52b43c.jpeg",
                  fit: BoxFit.cover,
                ),
              ),
            ),
            SizedBox(width: 10,),
            Expanded(
              flex: 1,
              child: Container(
                  height: 180,
                  child: ListView(
                    children: <Widget>[
                      Container(
                          height: 90,
                          child: Image.network(
                            "http://5b0988e595225.cdn.sohucs.com/images/20171108/ba1b73bec9784b9eae4416226abcddc7.jpeg",
                            fit: BoxFit.cover,
                          )),
                      SizedBox(
                        height: 10,
                      ),
                      Container(
                          height: 90,
                          child: Image.network(
                            "http://5b0988e595225.cdn.sohucs.com/images/20171108/ba1b73bec9784b9eae4416226abcddc7.jpeg",
                            fit: BoxFit.cover,
                          ))
                    ],
                  )),
            ),
            SizedBox(width: 10,),
          ],
        )
      ],
    );
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值