Container是一个拥有绘制、定位、调整大小的widget

padding和margin

padding和margin分别设置Container的内边距和外边距。可取值包括下面四个:

  • EdgeInsets.all(50):设置所有的padding为同一个值50。
  • EdgeInsets.only(left: 50,right: 50):只设置左边和右边。
  • EdgeInsets.fromLTRB(50,10,50,10):分别设置左上右下的值为50、10。
  • EdgeInsets.symmetric(vertical: 10,horizontal: 50):如果上下或者左右的padding值一样可以指定vertical的值为上下的padding值。horizontal指定左右的padding值。
  1. Scaffold(
  2. appBar: AppBar(title: Text('Container')),
  3. body: Center(
  4. child: Column(
  5. mainAxisAlignment: MainAxisAlignment.spaceEvenly,
  6. children: <Widget>[
  7. Container(
  8. padding: EdgeInsets.all(50),
  9. decoration: BoxDecoration(
  10. border: Border.all(color: Colors.red, width: 1),
  11. borderRadius: BorderRadius.all(Radius.circular(20))),
  12. child: Text(
  13. "确定",
  14. style: TextStyle(color: Colors.red),
  15. ),
  16. ),
  17. Container(
  18. padding: EdgeInsets.only(left: 50,right: 50),
  19. decoration: BoxDecoration(
  20. border: Border.all(color: Colors.red, width: 1),
  21. borderRadius: BorderRadius.all(Radius.circular(20))),
  22. child: Text(
  23. "确定",
  24. style: TextStyle(color: Colors.red),
  25. ),
  26. ),
  27. Container(
  28. padding: EdgeInsets.fromLTRB(50, 10, 50, 10),
  29. decoration: BoxDecoration(
  30. border: Border.all(color: Colors.red, width: 1),
  31. borderRadius: BorderRadius.all(Radius.circular(20))),
  32. child: Text(
  33. "确定",
  34. style: TextStyle(color: Colors.red),
  35. ),
  36. ),
  37. Container(
  38. padding: EdgeInsets.symmetric(vertical: 10, horizontal: 50),
  39. decoration: BoxDecoration(
  40. border: Border.all(color: Colors.red, width: 1),
  41. borderRadius: BorderRadius.all(Radius.circular(20))),
  42. child: Text(
  43. "确定",
  44. style: TextStyle(color: Colors.red),
  45. ),
  46. ),
  47. ],
  48. ),
  49. )),

width和height

widthheight指定宽高,如果不指定则为子widget的宽高。如果想要完全撑满父容器,可以将widthheight设置为double.infinity

decoration

decoration经常被用来改变一个Container的展示效果。其概念类似与android中的shape。一般实际场景中会使用他的子类BoxDecoration。BoxDecoration提供了对背景色,边框,圆角,阴影和渐变等功能的定制能力。

  • image: DecorationImage设置一张图片作为背景。
  • border: Border设置边界。
  • borderRadius: BorderRadius设置边界圆角。当shapeBoxShape.circle设置borderRadius将不起作用
  • shape: BoxShape设置形状。
  • gradient设置渐变。可选值包括三种类型的渐变LinearGradientRadialGradientSweepGradient
  1. Scaffold(
  2. appBar: AppBar(title: Text('BorderRadius')),
  3. body: Center(
  4. child: Column(
  5. mainAxisAlignment: MainAxisAlignment.spaceEvenly,
  6. children: <Widget>[
  7. Container(
  8. height: 200,
  9. width: 200,
  10. decoration: BoxDecoration(
  11. color: Colors.yellow,
  12. //设置图片
  13. image: DecorationImage(
  14. fit: BoxFit.fitWidth,
  15. image: NetworkImage(
  16. 'https://flutter.io/images/catalog-widget-placeholder.png',
  17. ),
  18. ),
  19. //设置边界
  20. border: Border.all(color: Colors.deepOrange, width: 3),
  21. //设置阴影
  22. boxShadow: const [
  23. BoxShadow(blurRadius: 10),
  24. ],
  25. //设置边界圆角
  26. borderRadius: BorderRadius.all(Radius.circular(18))),
  27. ),
  28. Container(
  29. height: 200,
  30. width: 200,
  31. decoration: BoxDecoration(
  32. gradient: RadialGradient(
  33. //渐变
  34. colors: const [
  35. Colors.green,
  36. Colors.deepOrange,
  37. Colors.pinkAccent,
  38. Colors.deepPurple
  39. ],
  40. ),
  41. //设置边界圆角
  42. shape: BoxShape.circle,
  43. ),
  44. )
  45. ],
  46. ),
  47. ),
  48. ),

2.Column和Row

MainAxisAlignment

  1. Scaffold(
  2. appBar: AppBar(title: Text('Flutter')),
  3. body: Column(
  4. children: <Widget>[
  5. Text("MainAxisAlignment.start",style:TextStyle(
  6. color: Colors.blueAccent,
  7. fontSize: 18
  8. )),
  9. Row(
  10. mainAxisAlignment: MainAxisAlignment.start,
  11. children: <Widget>[
  12. Icon(Icons.star,color: Colors.yellow, size: 50),
  13. Icon(Icons.star,color: Colors.yellow, size: 50),
  14. Icon(Icons.star,color: Colors.yellow, size: 50),
  15. ],
  16. ),
  17. Text("MainAxisAlignment.center",style:TextStyle(
  18. color: Colors.blueAccent,
  19. fontSize: 18
  20. )),
  21. Row(
  22. mainAxisAlignment: MainAxisAlignment.center,
  23. children: <Widget>[
  24. Icon(Icons.star,color: Colors.yellow, size: 50),
  25. Icon(Icons.star,color: Colors.yellow, size: 50),
  26. Icon(Icons.star,color: Colors.yellow, size: 50),
  27. ],
  28. ),
  29. Text("MainAxisAlignment.spaceAround",style:TextStyle(
  30. color: Colors.blueAccent,
  31. fontSize: 18
  32. )),
  33. Row(
  34. mainAxisAlignment: MainAxisAlignment.spaceAround,
  35. children: <Widget>[
  36. Icon(Icons.star,color: Colors.yellow, size: 50),
  37. Icon(Icons.star,color: Colors.yellow, size: 50),
  38. Icon(Icons.star,color: Colors.yellow, size: 50),
  39. ],
  40. ),
  41. Text("MainAxisAlignment.spaceBetween",style:TextStyle(
  42. color: Colors.blueAccent,
  43. fontSize: 18
  44. )),
  45. Row(
  46. mainAxisAlignment: MainAxisAlignment.spaceBetween,
  47. children: <Widget>[
  48. Icon(Icons.star,color: Colors.yellow, size: 50),
  49. Icon(Icons.star,color: Colors.yellow, size: 50),
  50. Icon(Icons.star,color: Colors.yellow, size: 50),
  51. ],
  52. ),
  53. Text("MainAxisAlignment.spaceEvenly",style:TextStyle(
  54. color: Colors.blueAccent,
  55. fontSize: 18
  56. )),
  57. Row(
  58. mainAxisAlignment: MainAxisAlignment.spaceEvenly,
  59. children: <Widget>[
  60. Icon(Icons.star,color: Colors.yellow, size: 50),
  61. Icon(Icons.star,color: Colors.yellow, size: 50),
  62. Icon(Icons.star,color: Colors.yellow, size: 50),
  63. ],
  64. ),
  65. Text("MainAxisAlignment.end",style:TextStyle(
  66. color: Colors.blueAccent,
  67. fontSize: 18
  68. )),
  69. Row(
  70. mainAxisAlignment: MainAxisAlignment.end,
  71. children: <Widget>[
  72. Icon(Icons.star,color: Colors.yellow, size: 50),
  73. Icon(Icons.star,color: Colors.yellow, size: 50),
  74. Icon(Icons.star,color: Colors.yellow, size: 50),
  75. ],
  76. )
  77. ],
  78. ),
  79. ),

crossAxisAlignment

  1. Scaffold(
  2. appBar: AppBar(title: Text('Flutter')),
  3. body: Column(
  4. children: <Widget>[
  5. Text("CrossAxisAlignment.start",style:TextStyle(
  6. color: Colors.blueAccent,
  7. fontSize: 18
  8. )),
  9. Row(
  10. crossAxisAlignment: CrossAxisAlignment.start,
  11. children: <Widget>[
  12. Icon(Icons.star,color: Colors.yellow, size: 30),
  13. Icon(Icons.star,color: Colors.yellow, size: 60),
  14. Icon(Icons.star,color: Colors.yellow, size: 30),
  15. ],
  16. ),
  17. Text("CrossAxisAlignment.center",style:TextStyle(
  18. color: Colors.blueAccent,
  19. fontSize: 18
  20. )),
  21. Row(
  22. crossAxisAlignment: CrossAxisAlignment.center,
  23. children: <Widget>[
  24. Icon(Icons.star,color: Colors.yellow, size: 30),
  25. Icon(Icons.star,color: Colors.yellow, size: 60),
  26. Icon(Icons.star,color: Colors.yellow, size: 30),
  27. ],
  28. ),
  29. Text(" CrossAxisAlignment.end",style:TextStyle(
  30. color: Colors.blueAccent,
  31. fontSize: 18
  32. )),
  33. Row(
  34. crossAxisAlignment: CrossAxisAlignment.end,
  35. children: <Widget>[
  36. Icon(Icons.star,color: Colors.yellow, size: 30),
  37. Icon(Icons.star,color: Colors.yellow, size: 60),
  38. Icon(Icons.star,color: Colors.yellow, size: 30),
  39. ],
  40. )
  41. ],
  42. ),
  43. ),

参考

Container详解的更多相关文章

  1. Flutter之Container详解

    1 基本内容1.1 继续关系Object > Diagnosticable > DiagnosticableTree > Widget > StatelessWidget &g ...

  2. Flutter 布局(一)- Container详解

    本文主要介绍Flutter中非常常见的Container,列举了一些实际例子介绍如何使用. 1. 简介 A convenience widget that combines common painti ...

  3. Java web.xml 配置详解

    在项目中总会遇到一些关于加载的优先级问题,近期也同样遇到过类似的,所以自己查找资料总结了下,下面有些是转载其他人的,毕竟人家写的不错,自己也就不重复造轮子了,只是略加点了自己的修饰. 首先可以肯定的是 ...

  4. Docker命令详解

    Docker命令详解   最近学习Docker,将docker所有命令实验了一番,特整理如下: # docker --help Usage: docker [OPTIONS] COMMAND [arg ...

  5. Tomcat使用详解

    Tomcat简介 官网:http://tomcat.apache.org/ Tomcat GitHub 地址:https://github.com/apache/tomcat Tomcat是Apach ...

  6. jQuery:详解jQuery中的事件(二)

    上一篇讲到jQuery中的事件,深入学习了加载DOM和事件绑定的相关知识,这篇主要深入讨论jQuery事件中的合成事件.事件冒泡和事件移除等内容. 接上篇jQuery:详解jQuery中的事件(一) ...

  7. web.xml 中的listener、 filter、servlet 加载顺序及其详解

    在项目中总会遇到一些关于加载的优先级问题,近期也同样遇到过类似的,所以自己查找资料总结了下,下面有些是转载其他人的,毕竟人家写的不错,自己也就不重复造轮子了,只是略加点了自己的修饰. 首先可以肯定的是 ...

  8. ActionBar详解

    转: 一.ActionBar介绍 在Android 3.0中除了我们重点讲解的Fragment外,Action Bar也是一个非常重要的交互元素,Action Bar取代了传统的tittle bar和 ...

  9. java web.xml配置详解

    1.启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点. 2.紧急着,容创建一个Servl ...

随机推荐

  1. LINUX命令LS -AL 解析

    LINUX命令LS -AL 解析 linux命令ls -al 解析 ls是“list”的意思,与早期dos的命令dir功能类似.参数-al则表示列出所有的文件,包括隐藏文件,就是文件前面第一个字符为. ...

  2. MySQL中将数据库表名修改成大写的存储过程

    原文:MySQL中将数据库表名修改成大写的存储过程 MySQL中将数据库表名修改成大写的存储过程 创建存储过程的代码: DROP PROCEDURE IF EXISTS uppercaseTablen ...

  3. 【图灵杯 A】谷神的赌博游戏

    [题目链接]:http://oj.acmclub.cn/problem.php?cid=1164&pid=0 [题意] [题解] 把每个数字都%3处理; 会发现最后1的个数为n+1 2和0的个 ...

  4. Python学习简单练习-99乘法表

    __author__ = 'ZFH'#-*- coding:utf-8 -*-for i in range(10): #外层循环,range(10),1-9 for j in range(1,i+1) ...

  5. Beat &#39;Em Up Game Starter Kit (横版格斗游戏) cocos2d-x游戏源代码

    浓缩精华.专注战斗! 游戏的本质是什么?界面?养成?NoNo!    游戏来源于对实战和比赛的模拟,所以它的本源就是对抗.就是战斗! 是挥洒热血的一种方式! 一个游戏最复杂最难做的是什么?UI?商城? ...

  6. quick-cocos2d-x游戏开发【2】——项目结构分析、创建新场景

    创建完一个新项目之后,我们能够简单的看一看这个项目的文件组成,有这么一个文件层次结构 几个proj.*目录就不用说了,是相应的平台的解决方式,res专门存放我们的游戏资源.scripts存放我们的lu ...

  7. Linux Shell脚本编程学习笔记和实战

    http://www.1987.name/141.html shell基础 终端打印.算术运算.经常使用变量 Linux下搜索指定文件夹下特定字符串并高亮显示匹配关键词 从键盘或文件里获取标准输入 [ ...

  8. 联想z470 win7 64位双系统继续恢复镜像法安装黑苹果10.9.3

    之前的方法是安装 10.9 http://blog.csdn.net/kissing_huo/article/details/23559239的 苹果最新的swift的语言 出来  必须最新的xcod ...

  9. linux+apache+mysql+php平台构建及环境配置

    1.我使用的centos6.安装时已经选择安装apach.mysql,事实上在运行下列两行命令的时候又对其进行了更新.所以说装的时候能够不安装,免得浪费时间. yum install php-mysq ...

  10. &lt;&lt;Python基础教程&gt;&gt;学习笔记 | 第12章 | 图形用户界面

    Python支持的工具包非常多.但没有一个被觉得标准的工具包.用户选择的自由度大些.本章主要介绍最成熟的跨平台工具包wxPython.官方文档: http://wxpython.org/ ------ ...