【布局 widget】ConstrainedBox 与 UnconstrainedBox

简介: 【布局 widget】ConstrainedBox 与 UnconstrainedBox

image.png

ConstrainedBox 可以在父约束的允许范围内修改 child 的约束。

ConstrainedBox 的布局逻辑和 SizedBox 一样,因为它们的 renderObject 都是 RenderConstrainedBox。

ConstrainedBox 即可以给 child tight constrins 也可以给 child loose constrains。

什么时候用 ConstrainedBox

其实需要用 ConstrainedBox 的场景是很少的。因为在每个特定的需求下都有特定的 widget 供我们使用,特定的需求下用特定的 widget 会让我们的代码可读性更好。所以 ConstrainedBox 是用来兜底的,感觉用别的 wdiget 都不合适的时候,可以考虑用 ConstrainedBox。

UnconstrainedBox

UnconstrainedBox 是用来放开约束的,传给 child 的约束是 0 到 infinity,相当于没有约束。

UnconstrainedBox 有一个参数 constrainedAxis 可以控制是放开 width,还是放开 height,还是都放开。

什么时候用 UnconstrainedBox

为了看一下组件的 真实 size,可以用 UnconstrainedBox 给 child 创建一个没有约束的 context,一般用来调试。

幕后的大佬 ConstraintsTransformBox

ConstraintsTransformBox 很神秘,几乎看不到他的踪影,因为 ConstraintsTransformBox 的作用也是用来测试的。UnconstrainedBox 是将 ConstraintsTransformBox 包了一层皮,工作都是 ConstraintsTransformBox 做的。

要放开约束,可以用 UnconstrainedBox,也可以用 ConstraintsTransformBox。ConstraintsTransformBox 可以控制的更细致些。一般来说 用 UnconstrainedBox 就足够了,UnconstrainedBox 会方便些。

目录
相关文章
|
5月前
【Qt 学习笔记】Qt常用控件 | 布局管理器 | 垂直布局Vertical Layout
【Qt 学习笔记】Qt常用控件 | 布局管理器 | 垂直布局Vertical Layout
364 2
|
缓存
【布局 widget】Flutter ListView
ListView 是最常用的滚动 widget,也是布局 widget。它在滚动方向上一个接一个地显示它的 child。
261 0
【布局 widget】Flutter ListView
【布局 widget】 Flutter GridView
GridView 独有的参数其实只有一个 gridDelegate,gridDelegate 的作用是为 GridView 布局,制定每行几个 child,空白多少等。
161 0
【布局 widget】 Flutter GridView
|
前端开发 容器
【布局 widget】OverflowBox 与 SizedOverflowBox
【布局 widget】OverflowBox 与 SizedOverflowBox
147 0
【布局 widget】OverflowBox 与 SizedOverflowBox
【布局 widget】Offstage 与 Visibility
【布局 widget】Offstage 与 Visibility
126 0
【布局 widget】Offstage 与 Visibility
【布局 widget】Flutter Align
【布局 widget】Flutter Align
109 0
【布局 widget】Flutter Align
|
容器
使用 AspectRatio Widget
使用 AspectRatio Widget
113 0
使用 AspectRatio Widget
|
Android开发
Android使用绝对布局AbsoluteLayout动态添加控件
Android使用绝对布局AbsoluteLayout动态添加控件
189 0
|
容器
Qt利用布局,widget和ScrollArea实现抽屉效果
Qt利用布局,widget和ScrollArea实现抽屉效果
EditText与TextView的开发中的常用属性,打造完美布局
EditText与TextView的开发中的常用属性,打造完美布局
100 0