主控件
- 按我的理解,含有child属性的就是单子元素的布局,含有children的就是多子元素的,按它的属性去分会比较好识别
- 使用键值对传值的都需要传控件,真实需要填充的数据实际上是不需要以键值对传递,而是直接按传参的标准来,以此来看区分要写控件还是值帮了我不少忙。因为经常放错控件提示我不对,所以用这个方法能避免不少问题
Scaffold
单页面的页面结构控件,比如导航条/侧边栏/标题栏
appbar:标题栏控制区
drawable:侧边栏控制区
bottomNavigationBar:底部导航栏区域(至少要两个,超过三个要设置type才会显示)
body:内容区域
Text
文本控件
Container
容器控件,child能容纳一个子元素,它一般是用作父容器,主要用来添加宽高和背景,用来限制子元素
height:
width:
color:
padding:
margin:
Image
图片控件
image:图片地址,支持NetworkImage等
fit:图片的填充格式
ListView
列表控件
IconButton
可点击的图标按钮。
icon:指明icon图标地址
onPressed:点击按钮状态监听回调
Column/Row
竖直排列的父控件,能容纳多个子元素,单行的Wrap跟Row表现几乎一致,单列的Wrap则跟Row表现几乎一致,实际跟Flow差不多,可以溢出
children:容纳多个子元素
mainAxisAlignment:主轴上子元素分布方式,均匀分布还是靠边
crossAxisAlignment:副轴上对齐的方式
verticalDirection:每个子组件在父容器的相对位置,默认是down也就是最上方(对,你没看错,down是最上方)
Wrap
布局容器,可以包含水平或者数值方向的多个控件
children:容纳多个子元素
辅助控件
Center
居中控件
child:只能容纳一个子元素
Container
width: //控件宽度
height: //控件高度
color: //背景颜色
alignment: Alignment.bottomLeft,//内容在布局中的位置
child: //内容元素
decoration: