ConstrainedBox
- It constraints size of it's child, as per the given values.
- The size of ConstrainedBox itself depends on it's parent.
// Restrict the width between 70 — 150
ConstrainedBox(
constraints: Boxconstraints(
minWidth: 70, maxWidth: 150,
),
child: AnyWidget(),
)
UnconstrainedBox
- UnconstrainedBox imposes no constraints on its child.
- It renders the child as if it were alone on an infinite canvas with no constraints.
// No restriction applied on the child
UnconstrainedBox(
child: AnyWidget(),
)
OverflowBox
- OverflowBox is similar to UnconstrainedBox the difference is that it won't display any warnings if the child doesn't fit the space.
- That is, it allows overflow.
// Will overflow the width after 150 px
OverflowBox (
minWidth: 70,
maxWidth: 150,
child: AnyWidget(),
)
LimitedBox
- As the name suggests, it limits the size of its child.
- Difference between ConstrainedBox and LimitedBox is that, the later limits only when it gets infinite constraints,
// limits the width to 100 px
UnconstrainedBox(
child: LimitedBox(
maxWidth: 100,
child: AnyWidget(),
)
)
FittedBox
- FittedBox will increase or decrease the size of it's child, until it is completely filled.
- In the example, FittedBox scales the Text until it fills all of the available width.
// Text size will increase to occupy all 100 px
Container(
width: 100.0,
child: FittedBox(
child: Text('l am fit. '),
)
)