下記のようなレイアウトはデザイナーより依頼されることは多い。
灰色のdividerが本体のpaddingを受け付けないことがわかる。
普通に書くと、下記のようになる。特に青色の部分は複雑になると、コードが読みづらい。
Column(
children: [
Padding(...) // 青色の部分
divider,
Padding(...) // 青色の部分
divider,
]
),
そこで、OverflowBox
を活用すると、paddingは全体で共通化されることになり、コードがすっきりになる
Padding(
padding: ...
child: Column(
children: [
... // 青色の部分
SizedBox(height: 5,
child: OverflowBox(maxHeight: 5, child: divider)
),
... // 青色の部分
SizedBox(height: 5,
child: OverflowBox(maxHeight: 5, child: divider)
),
]
)
)
OverflowBox
の外をSizedBox
で囲まないと、overflowになってしまうので、要注意