对于行(Row)来说,主轴是水平方向,横轴垂直方向。对于列(Column)来说,主轴垂直方向,横轴水平方向。
MainAxisAlignment 和CrossAxisAlignment 类提供了很多控制对齐的常量.
spaceEvenly,它会在每个图像之间,之前和之后均匀分配空闲的水平空间
通过使用Expanded widget,可以将widget的大小设置为适和行或列,Expanded widget具有一个flex属性,它是一个整数,用于确定widget的弹性系数,默认弹性系数是1。例如,要创建一个由三个widget组成的行,其中中间widget的宽度是其他两个widget的两倍,将中间widget的弹性系数设置为2:
聚集 widgets
默认情况下,行或列沿着其主轴会尽可能占用尽可能多的空间,但如果要将孩子紧密聚集在一起,可以将mainAxisSize设置为MainAxisSize.min
为了最大限度地减少由嵌套严重的布局代码导致的视觉混淆,可以在变量和函数中实现UI的各个部分。
Container
添加 padding, margins, borders, background color, 或将其他装饰添加到widget.包含单个子widget,但该子widget可以是Row,Column,甚至是widget树的根
GridView
将 widgets 排列为可滚动的网格.GridView.count 允许您指定列数GridView.extent 允许您指定项的最大像素宽度
ListView
将widget排列为可滚动列表,比Column配置少,但更易于使用并支持滚动
Stack
将widget重叠在另一个widget之上.子列表中的第一个widget是base widget; 随后的子widget被覆盖在基础widget的顶部,Stack的内容不能滚动
Card 接受单个子项,但该子项可以是Row,Column或其他包含子级列表的widget 显示圆角和阴影,Card内容不能滚动