【GHS】Flutter手把手教程UI布局和Widget——容器

编程开发   © 文章版权由 admin 解释,禁止匿名转载

#楼主# 2020-12-30

### Container 我们先来看一下Container初始化的参数: ``` dart Container({ Key key, // 位置 居左、居右、居中 this.alignment, // EdgeInsets Container的内边距 this.padding, // 背景颜色 this.color, // 背景装饰器 this.decoration, // 前景装饰器 this.foregroundDecoration, // 宽度 double width, // 告诉 double height, // 约束 BoxConstraints constraints, // EdgeInsets Container的外边距 this.margin, // 旋转 this.transform, // 子控件 this.child, // 裁剪Widget的模式 this.clipBehavior = Clip.none, }) ``` **注意:** - `Container` 的`color`属性与属性 `decoration`的`color`存在冲突,如果两个`color`都做了设置,默认会以`decoration`的`color`为准。 - 如果我们没有给`Container`设置`width`和`height`,`Container`会跟`child`的大小一样;假如我们没有设置`child`的时候,它的尺寸会极大化,尽可能的充满它的`父Widget`。 **1. 最简单的Container** ``` dart Container( child: Text("Fulade"), color: Colors.red, ) ``` Container接收一个`child`参数,我们可以传入`Text`作为`child`参数,然后传入是一个颜色。 ![2020_12_28_container_normal](https://cdn.jsdelivr.net/gh/johnson8888/blog_pages/images/2020_12_28_container_normal.png) **2. Padding** ``` dart Container( child: Text("Pading 10"), padding: EdgeInsets
这里就是设置了一个圆角的示例,同样我们对`BoxDecoration`的`color`属性设置颜色,对整个`Container`的也是有效的。 **6. 显示 Image** ``` dart Container( height: 40, width: 100, margin: EdgeInsets.all(10), decoration: BoxDecoration( image: DecorationImage( image: AssetImage("images/flutter_icon_100.png"), fit: BoxFit.contain, ), ), ) ``` `BoxDecoration`可以传入一个`Image`对象,这样就灵活了很多,`Image`可以来自本地也可以来自网络。 ![2020_12_28_container_image](https://cdn.jsdelivr.net/gh/johnson8888/blog_pages/images/2020_12_28_container_image.png) **7. Border** ``` dart Container( child: Text('BoxDecoration with border'), padding: EdgeInsets.symmetric(horizontal: 15), margin: EdgeInsets.all(5), decoration: BoxDecoration( borderRadius: BorderRadius.circula(12), border: Border.all( color: Colors.red, width: 3, ), ), ) ``` 使用`border`可以帮助我们做边界效果,还可以设置圆角`borderRadius`,也可以设置`border`的宽度,颜色等。 ![2020_12_28_container_border](https://cdn.jsdelivr.net/gh/johnson8888/blog_pages/images/2020_12_28_container_border.png) **8. 渐变色** ``` dart Container( padding: EdgeInsets.symmet

成为第一个回答人

评论

登录后才可发表内容
  • 主题

    106

  • 帖子

    82

  • 关注者

    0

Copyright © 2019 凯特网.   Powered by HYBBS 2.3.4  

Runtime:0.0790s Mem:2058Kb