Flutter 常用布局之Container
生活中离不开杯子、碗、盆等容器
喝水需要杯子,装饭装肉用的碗,洗脸洗脚用的盆.
杯子、碗、洗脸盆都有自己的颜色、宽度、高度;这一切属性根据我们的需求到商店进行了购买.
在Flutter开发中接触到的Container(容器),它也有相关的属性供我们使用.
Container可以根据属性的设置来展现不同的布局大小和样式,还可以容纳其他Widget.
Container只所以可以是容器,因为它可以容纳其它的widget.
常用属性 width、height、color、alignment、padding
........
固定宽高
Center(child: Container(width: 100.0,height: 100.0,color: Colors.blue,),),
Center(child: Container(width: 200.0,height: 100.0,color: Colors.red,),)
宽度和高度无穷大
Center(child: Container(width: double.infinity,height: double.infinity,//color: Colors.red,decoration: BoxDecoration(color: Colors.blue,),),)
宽高>=-0.0 (宽高为正数和-0.0)
Center(child: Container(width: -100.0,height: -100.0,//color: Colors.red,decoration: BoxDecoration(color: Colors.blue,),),),
运行异常
Container宽高约束条件
子widget对其方式
常见的对齐方式
topLeft、topCenter、topRight、centerLeft、center、centerRight、bottomLeft、bottomCenter、bottomRight.
对齐方式是以容器的中心点为基准
Alignment center = Alignment(0.0, 0.0)
Container(width: 200.0,height: 200.0,color: Colors.red,alignment: Alignment.center,child: Text("xmiaoshen"),),)
对齐方式以容器的最左边顶部为基准
Alignment topLeft = Alignment(-1.0, -1.0)
Container(width: 200.0,height: 200.0,color: Colors.blue,alignment: Alignment.topLeft,child: Text("xmiaoshen",style: TextStyle(fontWeight: FontWeight.bold,fontSize: 18.0),),)
自定义对齐方式
Container(width: 200.0,height: 200.0,color: Colors.blue,alignment: Alignment(0.5,0.5),child: Text("xmiaoshen",style: TextStyle(fontWeight: FontWeight.bold,fontSize: 18.0),),),
内边距
内边距 (padding): Container 内部widget分别到四边距离.
Container(width: 200.0,height: 200.0,color: Colors.blue,padding: EdgeInsets.only(top: 10.0,left: 10.0),alignment: Alignment.topLeft,child: Text("xmiaoshen",style: TextStyle(fontWeight: FontWeight.bold,fontSize: 18.0),),)
子widget宽高超过或者等于父容器时,内边距属性padding依然有效
Container(width: 200.0,height: 200.0,color: Colors.blue,padding: EdgeInsets.all(18.0),alignment: Alignment.topLeft,child: Container(width: 200.0,height: 200.0,color: Colors.black45,),)
Container(width: 200.0,height: 200.0,color: Colors.blue,padding: EdgeInsets.all(18.0),alignment: Alignment.topLeft,child: Container(width: 300.0,height: 300.0,color: Colors.black45,),)
外边距
外边距 (margin): Container 分别到父容器Container四边距离.
Container(width: 200.0,height: 200.0,color: Colors.blue,alignment: Alignment.topLeft,child: Container(width: 200.0,height: 200.0,color: Colors.black45,margin: EdgeInsets.all(20.0),),)
container宽高超过或者等于父容器时,外边距属性margin依然有效
Container(width: 200.0,height: 200.0,color: Colors.blue,alignment: Alignment.topLeft,child: Container(width: 300.0,height: 300.0,color: Colors.black45,margin: EdgeInsets.all(20.0),),)
添加约束
容器约束
当我们设置容器的 width 必须在 minWith 和 maxWith 之间.
当我们设置容器的 height 必须在 minHeight 和 maxHeight 之间.
美化Container
通过设置 Container 的属性
decoration (装饰、装饰品)
Box (盒子)
设置边框
Container(width: 200.0,height: 200.0,//color: Colors.black45,decoration: BoxDecoration(color: Colors.blue,border: Border.all(color: Colors.purple,width: 6.0),),)
边框变圆角
Container(width: 200.0,height: 200.0,//color: Colors.black45,decoration: BoxDecoration(color: Colors.blue,border: Border.all(color: Colors.purple,width: 6.0),borderRadius: BorderRadius.all(Radius.circular(20.0))),)
Container(width: 200.0,height: 200.0,//color: Colors.black45,decoration: BoxDecoration(color: Colors.blue,border: Border.all(color: Colors.purple,width: 6.0),borderRadius: BorderRadius.only(
topLeft: Radius.circular(20.0),
bottomRight: Radius.circular(20.0))),)
矩形变圆形
Container(width: 200.0,height: 200.0,//color: Colors.black45,decoration: BoxDecoration(color: Colors.blue,border: Border.all(color: Colors.purple,width: 6.0),shape: BoxShape.circle),)
设置阴影
offset 阴影开始坐标(相对于手机屏幕原点偏移量) ,blurRadius 阴影模糊半径 ,spreadRadius 阴影扩散半径.
Container(width: 200.0,height: 200.0,//color: Colors.black45,decoration: BoxDecoration(color: Colors.blue,boxShadow: [BoxShadow(color: Colors.purple,offset: Offset(-6.0, 6.0),blurRadius: 6.0,spreadRadius: 3.0)],shape: BoxShape.rectangle),)
Container(width: 200.0,height: 200.0,//color: Colors.black45,decoration: BoxDecoration(color: Colors.blue,boxShadow: [BoxShadow(color: Colors.purple,offset: Offset(-6.0, 6.0),blurRadius: 6.0,spreadRadius: 3.0)],shape: BoxShape.circle),)
渐变背景
Container(width: 200.0,height: 200.0,//color: Colors.black45,decoration: BoxDecoration(color: Colors.blue,gradient: LinearGradient(colors: [Colors.blue.withOpacity(1.0),Colors.blue.withOpacity(0.9),Colors.blue.withOpacity(0.8),Colors.blue.withOpacity(0.7),Colors.blue.withOpacity(0.6),Colors.blue.withOpacity(0.5),Colors.blue.withOpacity(0.4),Colors.blue.withOpacity(0.3),Colors.blue.withOpacity(0.2),Colors.blue.withOpacity(0.1),], begin: Alignment.topCenter,
end: Alignment.bottomCenter)),)
小太阳
Container(width: 200.0,height: 200.0,//color: Colors.black45,decoration: BoxDecoration(color: Colors.blue,gradient: RadialGradient(center: const Alignment(0.0, 0.0), // near the top rightradius: 0.2,colors: [const Color(0xFFFFFF00), // yellow sunconst Color(0xFF0099FF), // blue sky],stops: [0.3, 1.0],)),)
参考
虚线容器插件
matrix4_transform
Flutter 常用布局之Container相关推荐
- Flutter常用布局集合
容器组件(Container) 容器组件(Container)是一个组合Widget,内部有绘制Widget.定位Widget和尺寸Widget,包含一个子Widget,自身具备如alignment. ...
- Flutter基础布局组件及实现
https://www.cnblogs.com/lxlx1798/p/11084904.html 一,概述 Flutter中拥有30多种预定义的布局widget,常用的有Container.Paddi ...
- Flutter 常用控件使用详解
目录 配置 Flutter常用控件 Text TextField组件 Container Image GridView Row水平组件 Column垂直布局 Stack层叠布局 参考 配置 由于Flu ...
- Flutter 弹性布局的基石: flex 和 flexible
Flutter 弹性布局的基石 是 flex 和 flexible.理解了这两个 widget,后面的row,column 就都轻而易举了.本文用示例的方式详细介绍 flex 的布局算法. flex ...
- flex 左右布局_web前端学习:移动端开发常用布局—前端弹性布局总结
各位已经入坑的前端小伙伴,前面咱们已经给大家分享了移动端开发时候流式布局的应用场景及注意事项,今天再次给大家分享一个布局叫弹性布局,接下来咱们从如下几个方面,全方位的给大家介绍弹性布局的使用. 一:什 ...
- flex 左右布局_移动端开发常用布局:前端弹性布局总结
各位已经入坑的前端小伙伴,前面咱们已经给大家分享了移动端开发时候流式布局的应用场景及注意事项,今天再次给大家分享一个布局叫弹性布局,接下来咱们从如下几个方面,全方位的给大家介绍弹性布局的使用. 一:什 ...
- Flutter进阶—布局一个控件
要在Flutter中布局单个控件,创建一个简单的控件并将其显示在屏幕上.在Flutter中,将文本.图标或图像放在屏幕上只需几步. 1.选择一个布局控件来保存对象 根据您希望对齐或约束可见控件的方式, ...
- Flutter进阶—布局方法演示
Flutter的布局机制的核心是控件.在Flutter中,几乎所有的东西都是一个控件,甚至布局模型都是控件.您在Flutter应用程序中看到的图像.图标和文本都是控件.但是您看不到的东西也是控件,例如 ...
- 浅谈Flutter UI布局
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/qiyei2009/article/de ...
最新文章
- Java语言基础JavaScript
- vue 数组长度_深入理解Vue的数据响应式
- SQL Sever 性能调优
- java创建方法并引用_java – 创建非捕获方法引用,它将调用超类方法
- genymotion linux 32,Ubuntu Linux 32bit - 不是Genymotion虚拟设备
- mysql语句二级查询_mysql_2 基本查询语句
- PyTorch 1.7 发布:支持 CUDA 11、FFT 新 API、及 Windows 分布式训练
- Ulua_toLua_基本案例(六)_LuaCoroutine2
- 地理信息系统(汤国安)重点整理与推导(第二章)
- RH850入门教程序言
- 实验七matlab数值计算,数学应用软件实验报告---MATLAB的数值计算
- NLP︱中文分词技术小结、几大分词引擎的介绍与比较
- epoch训练时间不同_epoch、batch size和iterations
- 天创速盈:拼多多商家提升投产比有什么技巧?
- 二、CRUD操作以及配置解析
- CPT208 人机设计 笔记
- 人体动作捕捉-坐标转换
- 编程语言都代表哪些国家?
- ERROR: After October 2020 you may experience errors when ins
- 计算机辅助教学毕业论文,计算机辅助教学管理——本科毕业论文规范化排版