所有widget都具有以下任一属性:
1、一个child属性:只包含一个子项。例如:Center、Container
2、一个children属性:可包含多个子项。例如:Row、Column、ListView、Stack
Stack:层叠控件
Stack控件可搭配Positioned对布局进行约束,只有stack控件下,可用Positioned
body: Container(
child: Stack(
children: [
Positioned(
child: Container(width: 100, height: 100, color: Colors.green),
bottom: 0,
left: 0,
),
Positioned(
child: Container(width: 100, height: 100, color: Colors.cyan),
top: 0,
left: 0),
],
)
ListView:最常用的滚动控件
Column&Row:线性布局,Column垂直方向排布控件布局,Row水平方向布局
Column和Row都有主轴和纵轴,Column的主轴是垂直方向,Row的主轴是水平方向。主轴和纵轴对齐方式分别对应两个枚举类MainAxisAlignment和CrossAxisAlignment。纵轴我们可以理解为主轴的交叉轴方向。
Column(
children:[
Text("123"),
Text("123456789")
],
);
运行结果:
![](https://img.haomeiwen.com/i1514045/54be473ba60baa9e.png)
设置主轴居中
mainAxisAlignment: MainAxisAlignment.center,
纵轴从起点start开始、终点end、居中center
crossAxisAlignment: CrossAxisAlignment.start
Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.start
children: [
Text('11111'),
Text('dsfsdfsdf22222'),
],
),
网友评论