Flutter元件约束及嵌套注意事项

对于一个屏幕视图来说,屏幕始终是根元件,然后包含多级子元件,形成一颗元件树。

约束

约束是尺寸的限制,也就允许最大与最小尺寸范围。约束是由上而下的,也就是父约束子,子约束孙。对于一个元件B,其父元件A,其子元件C,我们可以说B的约束来自于A,C的约束来自由B。反过来,A约束B,B约束C。

那么有哪些约束类型呢?

  • tight型约束:这种约束的最大值与最小值相等,使得子元件没有自由决定权。比如作根元素屏幕,它的约束就是强制子元件与自己一样大,不能再大,也不能再小。
  • loose型约束:允许子元件有一定的变化范围。比如Center,它约束子元件在不超过自己的前提下,自由设置尺寸。
  • unlimited:允许子元件任意设置尺寸,大可以到无穷大,小也可以无穷小。比如Column。但是子元件超出屏幕,运行时会越界异常,编译时不会。

对于元件的嵌套要注意以下几种情况:

  • 可滚动性元件:需要对容器尺寸的限制,所以它的父元件的约束不能是unlimited,可以是其它类型。比如ListView
  • 贪婪性元件:有些元件的尺寸,在某些情况下,会根据父容器的约束尽可能大。所以它不能放在约束为unlimited的容器中。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值