属性
ConstrainedBox({
Key key,
@required this.constraints,
Widget child,
})
const BoxConstraints({
this.minWidth = 0.0,
this.maxWidth = double.infinity,
this.minHeight = 0.0,
this.maxHeight = double.infinity,
});
- 通过constraints,为child增加约束,child必须符合constraints,不符合部分按constraints里定义的来处理。
-
可以指定最小宽高和最大宽高,如果指定的最小宽和最大宽是同一个值,相当于指定了子widget的宽度为固定值。
image.png
class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: ConstrainedBox(
// constraints: BoxConstraints.expand(),//child尽可能大
// constraints: BoxConstraints.tightFor(width: 120, height: 120), //指定宽高
// constraints: BoxConstraints.tightForFinite(),// 指定宽高,但有默认值,无限大
constraints: BoxConstraints(
minWidth: 100, maxWidth: 300, minHeight: 100, maxHeight: 300),
child: Container(
color: Colors.blue,
height: 10,
width: 1000,
)),
);
}
}
如上代码:
- constraints做里最小宽度高度和最大宽度高度的约束。
- child内定义了自己的宽高,但都在constraints之外,因此显示时按constraints的约束显示的。
网友评论