Flutter的BoxConstraints

本文探讨了在Flutter中如何使用BoxConstraints设置尺寸限制,并通过UnconstrainedBox实现子元素不受父级约束的影响。实例演示了如何设置最小高度、宽度和最大尺寸,以及如何利用UnconstrainedBox包裹解除父级约束的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在css中,有min-height, max-height, min-width, max-width样式;

在Flutter中想设定这些样式,就得用BoxConstraints类;

而且跟css样式一样,BoxConstraints约束会被其child继承;

ConstrainedBox(
    constraints: BoxConstraints(
        minHeight: 30,
        minWidth: 30,
        maxHeight: 100,
        maxWidth: 100
    ),
    child: Container(
        width:10000,
        height: 10000,
        decoration: BoxDecoration(
            color: Colors.red
        )
    ),
)

上例中,Container最终大小为width:100, height: 100

想要消除父级的约束影响,使用UnconstrainedBox再包裹一层,接着上例:

ConstrainedBox(
    constraints: BoxConstraints(
        minHeight: 30,
        minWidth: 30,
        maxHeight: 100,
        maxWidth: 100
    ),
    child: Container(
        width:10000,
        height: 10000,
        decoration: BoxDecoration(
            color: Colors.red
        ),
        child: UnconstrainedBox(
            child: Container(
                width: 10,
                height: 10,
                decoration: BoxDecoration(
                    color: Colors.blue
                )
            )
        )
    ),
)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值