getContainer() {
return Container(
child: Center(
child: Text('Container(容器)在UI框架中是一个很常见的概念,Flutter也不例外。'),
),
//内边距
padding: EdgeInsets.all(18.0),
//外边距
margin: EdgeInsets.all(44.0),
width: 180.0,
height: 240,
//子Widget居中对齐
/* alignment: Alignment.center,*/
//Container样式
decoration: BoxDecoration(
//背景色
color: Colors.red,
//圆角边框
borderRadius: BorderRadius.circular(10.0),
),
);
}
getPadding() {
//只需要设置边距 可以使用Padding
return Padding(
padding: EdgeInsets.all(44.0),
child: Text('我是Padding'),
);
}
getCenter() {
//直接居中
return Center(
child: Text('center text'),
);
}
//Row的用法示范
Row(
children: <Widget>[
Container(color: Colors.yellow, width: 60, height: 80,),
Container(color: Colors.red, width: 100, height: 180,),
Container(color: Colors.black, width: 60, height: 80,),
Container(color: Colors.green, width: 60, height: 80,),
],
);
//Column的用法示范
Column(
children: <Widget>[
Container(color: Colors.yellow, width: 60, height: 80,),
Container(color: Colors.red, width: 100, height: 180,),
Container(color: Colors.black, width: 60, height: 80,),
Container(color: Colors.green, width: 60, height: 80,),
],
);
//第一个和最后一个平分
Row(
children: <Widget>[
Expanded(flex: 1, child: Container(color: Colors.yellow, height: 60)), //设置了flex=1,因此宽度由Expanded来分配
Container(color: Colors.red, width: 100, height: 180,),
Container(color: Colors.black, width: 60, height: 80,),
Expanded(flex: 1, child: Container(color: Colors.green,height: 60),)/设置了flex=1,因此宽度由Expanded来分配
],
);
「对齐方式」
「控制大小」
mainAxisSize: MainAxisSize.min, //让容器宽度与所有子Widget的宽度一致
Stack(
children: <Widget>[
Container(color: Colors.yellow, width: 300, height: 300),//黄色容器
Positioned(
left: 18.0,
top: 18.0,
child: Container(color: Colors.green, width: 50, height: 50),//叠加在黄色容器之上的绿色控件
),
Positioned(
left: 18.0,
top:70.0,
child: Text("Stack提供了层叠布局的容器"),//叠加在黄色容器之上的文本
)
],
)
扫一扫
在手机上阅读