Flutter布局之Container

Container

简介

​ 官方给出的简介,是一个结合了绘制(painting)、定位(positioning)以及尺寸(sizing)widget的widget。

布局特点
  • 如果没有子节点、没有设置width、height以及constraints,并且父节点没有设置unbounded的限制,Container会将自身调整到足够小。
  • 如果没有子节点、对齐方式(alignment),但是提供了width、height或者constraints,那么Container会根据自身以及父节点的限制,将自身调节到足够小。
  • 如果没有子节点、width、height、constraints以及alignment,但是父节点提供了bounded限制,那么Container会按照父节点的限制,将自身调整到足够大。
  • 如果有alignment,父节点提供了unbounded限制,那么Container将会调节自身尺寸来包住child;
  • 如果有alignment,并且父节点提供了bounded限制,那么Container会将自身调整的足够大(在父节点的范围内),然后将child根据alignment调整位置;
  • 含有child,但是没有width、height、constraints以及alignment,Container会将父节点的constraints传递给child,并且根据child调整自身。​
使用场景

Container是一个相对功能比较多的Widget,用它来做一些复杂的布局,例如

  • 需要设置间隔,使用margin padding . 如果只需要padding,也可以直接用Padding.
  • 需要对齐 使用alignment
  • 需要设置背景色或者背景图片的时候 使用color
  • 需要边框,圆角,阴影 使用deoration

注意:deoration和 color: 背景颜色不能共存,二者同时只能有一个

构造方法
 Container({
    Key key,
    this.alignment,
    this.padding,
    Color color,
    Decoration decoration,
    this.foregroundDecoration,
    double width,
    double height,
    BoxConstraints constraints,
    this.margin,
    this.transform,
    this.child,
  })
简单的例子
效果

先来看看效果
Demo效果
这个Demo涵盖了Container的基本用法.

  • 宽度和高度
  • margin和padding
  • 对齐的方式
  • 背景
  • 边框
  • 阴影
实现
Widget _buildContainerText() {
    return Container(
      padding: EdgeInsets.all(10.0),
      margin: EdgeInsets.all(20.0),
      decoration: BoxDecoration(
          border: Border.all(color: Colors.red),
          borderRadius: BorderRadius.circular(10.0),
          color: Colors.blueAccent,
          boxShadow: [
            BoxShadow(
              offset: Offset(0.0, 5.0),
              color: Colors.blueAccent,
              blurRadius: 10.0,
              spreadRadius: -5.0,
            ),
          ]),
      child: Text("我是示例代码", style: TextStyle(color: Colors.white)),
    );
  }
参考

https://juejin.im/post/5b13c3e1f265da6e3d666d80

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值