Container Widget:一个结合了常见的绘画,定位和大小调整的便利小部件。
如果窗口小部件没有子节点,没有高度,没有宽度,没有约束,并且父节点提供无限制约束,则Container尝试尽可能小。
如果窗口小部件没有子对象,但没有提供对齐,但提供了高度,宽度或约束,那么在给定这些约束和父对象约束的组合的情况下,Container会尽可能小。
如果窗口小部件没有子节点,没有高度,没有宽度,没有约束,没有对齐,但是父节点提供了有界约束,则Container会扩展以适应父节点提供的约束。
如果窗口小部件具有对齐,并且父窗口提供无限制约束,则Container会尝试围绕子窗口调整自身大小。
如果窗口小部件具有对齐,并且父窗口提供有界约束,则Container会尝试展开以适合父窗口,然后根据对齐方式将子项置于其自身内。
否则,窗口小部件具有子级但没有高度,没有宽度,没有约束,也没有对齐,并且Container将约束从父级传递给子级并调整其大小以匹配子级。
Container 属性介绍
- alignment:容器内子widget对齐方式。
- padding:设置容器内边距。
- margin:设置容器外边距。
- color:设置容器背景颜色
- decoration:装饰容器,非常强大
class ContainerWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
List<Color> list = new List();
list.add(Colors.purple);
list.add(Colors.red);
list.add(Colors.orange);
return MaterialApp(
debugShowCheckedModeBanner: false,
home: Scaffold(
appBar: AppBar(
title: Text("Study Container Widget"),
),
body: Container(
//容器内子widget对齐方式。
alignment: Alignment.bottomLeft,
//设置容器内边距。
padding: EdgeInsets.all(20.0),
//设置容器外边距。
margin: EdgeInsets.all(20.0),
// //设置容器背景颜色
// color: Colors.purple,
//装饰容器
decoration: ShapeDecoration(
//设置颜色,和gradient属性二选一
// color: Colors.amber,
//设置渐变色,和color属性二选一
gradient: LinearGradient(
colors: list,
),
shape: CircleBorder()),
),
),
);
}
}
- foregroundDecoration容器外部装饰
foregroundDecoration: BoxDecoration(
shape: BoxShape.circle,
border:Border.all(
color: Colors.green,
width: 20.0)
),
- width:容器宽度
- height:容器高度
- constraints约束容器大小,
constraints: BoxConstraints(
maxWidth: 200.0,
minWidth: 50.0,
maxHeight: 200.0,
minHeight: 50.0),
- transform:在绘制容器之前应用的转换矩阵
- child:容器子widget
child: Center(
child: Text(
"何",
style: TextStyle(fontSize: 40.0, color: Colors.white),
),
),