- Align
对齐布局,指定child的对齐方式 - AspectRatio
调整宽高比,根据设置的宽高比调整child组件。适用于需要固定组件宽高比的情形。aspectRatio属性不能为null,必须大于0且有限 - BaseLine
基准线布局,所有的child底部所在的同意水平线
baseline:double baseline数值必须要有,从顶部算
baselineType:TextBaseline baseline类型,必须要有。目前两种类型:alphabetic对齐字符底部的,ideographic对齐表意字符的水平线
- Center
居中布局,child处于水平和垂直方向的中间位置 - Row
水平布局,对child在水平方向进行排列 - Column
垂直布局,对child在垂直方向进行排列 - Container
容器布局,是一个组合的Widget,包含定位和尺寸 - ConstrainedBox
限定宽高,限定child的最大、最小值。如果child为null,会尽量缩小尺寸
constraints: BoxConstraints (child的限制条件,限制最大最小宽高)
child: Widget (子元素组件)
- FittedBox
缩放布局,在自己的尺寸范围内缩放并调整child的位置
fit: 缩放方式,默认值是BoxFix.contain,即child在FittedBox范围内,尽可能大。
contain:在保证child宽高比的前提下,尽可能填满
Alignment:对齐方式,默认值Alignment.center
- FractionallySizeBox
百分比布局,根据现有空间按照百分比调整child的尺寸。适用于一个区域里取百分比尺寸时。如果宽高因子为null,则child的宽高会尽可能充满整个区域。
alignment:AlignmentGeometry 对齐方式,不能为null
widthFactor: double 宽度因子,宽度乘以该值,就是最后宽度
heightFactor: double
- GridView
网格布局,对多行多列同时进行操作。最常用的网格布局是GridView.count,它创建了一个在横轴上具有固定数量 网格快 的平铺布局,和GridView.extent,它使用具有最大横轴范围的 网格快 创建布局。自定义SliverGridDelegate 可生成任意2D排列的子代,包括未对齐或重叠的排列
scrollDirection:enum 滚动方向
reverse:bool 决定滚动方向是否与阅读方向一致
controller:ScrollController 控制滚动的位置
primary:bool 当内容不足以滚动时,是否支持滚动;iOS中,当用户点击状态栏时是否滚动到顶部
physics:ScrollPhysics 控制用户滚动视图的交互
shrinkWrap:bool scrollView在滑动方向上的高度是否由内容高度决定,false:高度为滑动方向上最大允许高度;如果在滑动方向上没有设置约束,则这个字段必须设置为true,否则报错
padding:EdgeInsetsGeometry 用来设置BoxScrollView中子控件与父控件的间距
gridDelegate:SliverGridDelegate 一个控制GridView中子控件与父控件的间距
cacheExtent:double 可见区域的前后会有一定高度的空间去缓存子控件,当滑动就可以迅速呈现
semanticChildCount:Int 将提供语义信息的子代数量
-IndexedStack
栈索引布局,继承自Stack,显示第index个child,其他child是不可见的
-LimitedBox
限定宽高布局,对最大宽高进行限制,不限制最小
maxWidth: double 默认double.infini (最大宽度)
maxheight: double 默认double.infinity
- OverflowBox
溢出父容器显示,允许child超出父容器的范围显示 - SizeBox
设置具体尺寸,用特定大小的盒子来限定child宽度和高度。如果宽高为null,该组件会调整自身大小来匹配child尺寸 - ListView
列表布局,是一个线性布局的widgets列表。是最常用滑动组件,在滚动方向上一个一个地显示child,在交叉轴中,需要child填充ListView
itemExtent:double 指定Item在滑动方向上的高度,用来提高滑动性能
padding:EdgeInsetsGeometry 用来设置BoxScrollView中子控件与父控件的间距
ScrollDirection: enum 滚动方向
reverse: bool 决定滚动方向是否与阅读方向一致
controller: ScrollController 控制滚动的位置
primary:bool 当内容不足以滚动时,是否支持滚动;对于iOS系统还有一个效果:当用户点击状态栏是是否互动到顶部
physics:ScrollPhysics 控制用户滚动视图的交互
shrinkWrap:bool scrollView在滑动方向上的高度是否由内容高度决定,false:高度为滑动方向上最大允许高度;如果在滑动方向上没有设置约束,则这个字段必须设置为true,否则报错
cacheExtent:double 可见区域的前后会有一定高度的控件去缓存子控件,当滑动时就可以迅速呈现
Offstage
开关布局,控制是否显示组件,默认为true 不显示,Padding
填充布局,处理容器和child直接的间距Stack/Alignment
Alignment栈布局,根据Alignment组件的属性将child定位在Stack组件上Stack/Positioned
Positioned栈布局,根据Positioned组件的属性将child定位在Stack组件上Table
表格布局,使用表格的行和列进行布局,每一行的高度由内容决定,每一列的宽度由列数决定
columnWidths:Map<int,TableColumnWidth> 设置一列的宽度
defaultColumWidth: TableColumnWidth 默认每一列宽度,默认情况下均分
textDeirection:TextDirection 文字方向
border:TableBorder 表格边框
defaultVerticalAlignment TableCellVerticalAlignment 对齐方向,默认垂直
textBaseLine:TextBaseLine defaultVerticalAlignment 为baseline时,会用到该属性
- Transform
矩阵转换,做矩阵变换,对child做平移、旋转、、缩放等操作
transform:Matrix4 一个4x4矩阵
origin:Offset 旋转点,相对于左上角的偏移,默认为左上角顶点
alignment:AlignmentGeometry 对齐方式
transformHitTests:bool 点击区域是否也做相应的改变
- Wrap
按宽高自动换行,让child自动换行布局。单行的Wrap 跟Row一样,单列的Wrap跟Column一样。适用于需要按宽度或高度让child自动换行的场景
direction:Axis 默认值Axis.horizontal 主轴方向默认水平
alignment:WrapAlignment 默认WrapAlignment.star 主轴方向对齐方式,默认start
spacing:double 默认0 主轴方向间距
runAlignment:WrapAlignment 默认WrapAlignment.star run的对齐方式,可以理解为新的行或列
runSpacing:double 默认0 run的间距
crossAxisAlignment:WrapAlignment 默认WrapAlignment.star 交叉轴方向对齐方式
textDirection:TextDirection 文字方向
verticalDirection: VerticalDirection 默认 down child 的摆放顺序