【布局 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 会方便些。

目录
相关文章
|
4月前
【Qt 学习笔记】Qt常用控件 | 布局管理器 | 垂直布局Vertical Layout
【Qt 学习笔记】Qt常用控件 | 布局管理器 | 垂直布局Vertical Layout
310 2
|
6月前
|
开发工具 Android开发 数据安全/隐私保护
12. 【Android教程】绝对布局 AbsoluteLayout
12. 【Android教程】绝对布局 AbsoluteLayout
94 0
|
Android开发
【RecyclerView】 九、为 RecyclerView 设置不同的布局样式
【RecyclerView】 九、为 RecyclerView 设置不同的布局样式
283 0
【RecyclerView】 九、为 RecyclerView 设置不同的布局样式
|
缓存
【布局 widget】Flutter ListView
ListView 是最常用的滚动 widget,也是布局 widget。它在滚动方向上一个接一个地显示它的 child。
255 0
【布局 widget】Flutter ListView
|
XML Android开发 数据格式
【Android】DrawerLayout抽屉布局的写法
抽屉布局就类似那种侧拉出来的界面。 一个页面想要实现抽屉布局很简单! 这个XML文件包含抽屉布局的代码。
141 0
【布局 widget】 Flutter GridView
GridView 独有的参数其实只有一个 gridDelegate,gridDelegate 的作用是为 GridView 布局,制定每行几个 child,空白多少等。
155 0
【布局 widget】 Flutter GridView
|
前端开发 容器
【布局 widget】OverflowBox 与 SizedOverflowBox
【布局 widget】OverflowBox 与 SizedOverflowBox
142 0
【布局 widget】OverflowBox 与 SizedOverflowBox
【布局 widget】Offstage 与 Visibility
【布局 widget】Offstage 与 Visibility
117 0
【布局 widget】Offstage 与 Visibility
【布局 widget】Flutter Align
【布局 widget】Flutter Align
107 0
【布局 widget】Flutter Align
|
Android开发
Android使用绝对布局AbsoluteLayout动态添加控件
Android使用绝对布局AbsoluteLayout动态添加控件
183 0