OverflowBox简介
它对child施加的约束不同于从其父控件获得的约束,可能允许child溢出父控件的空间.
- 当OverflowBox的最大尺寸大于child的时候,child可以完整显示,当其小于child的时候,则以最大尺寸为基准,当然,这个尺寸都是可以突破父节点的
基本用法
OverflowBox设置最大/最小尺寸
- SizedOverflowBox,一个特定大小的小部件,但将其原始约束传递给它的子节点,然后可能会溢出。
- ConstrainedBox,一个对其子项施加额外约束的小部件。
- UnconstrainedBox,一个试图让它的child在没有约束的情况下绘制的容器。
- SizedBox,一个具有指定大小的盒子。
实例演示
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
class OverflowBoxDefault extends StatelessWidget {
final double curmaxHeight;
final double curmaxWidth;
final double curHeight;
final double curWidth;
final AlignmentGeometry curalignment;
OverflowBoxDefault(
{Key key,
this.curmaxHeight,
this.curmaxWidth,
this.curWidth,
this.curHeight,
this.curalignment})
: super(key: key);
@override
Widget build(BuildContext context) {
return OverflowBox(
minHeight: 80.0,
minWidth: 80.0,
//设置最大宽,高
maxWidth: curmaxWidth,
maxHeight: curmaxHeight,
//调整child位置
alignment: curalignment,
child: Container(
//widget宽高大于overflowBox设置的最大,以overflowbox设置的最大宽高为限制,
//小于overflowBox 设置的最大限度,子widget能够完全显示
height: curHeight,
width: curWidth,
child: Text(
"$curmaxWidth * $curmaxHeight",
style: TextStyle(color: Colors.white),
),
color: Color(0xfff48fb1),
),
);
}
}