我试图了解 Flutter 布局系统的工作原理。
我在文档中读到,在 Flutter 上,“约束下降,尺寸上升”,这意味着,父级告诉子级其大小约束是什么,子级告诉父级他们选择的大小。
然后我读了Expanded小部件的定义:
扩展 Row、Column 或 Flex 的子级以便子级填充可用空间的小部件。
问:不Expanded违反上述规则吗?我的理解是,父母不应该告诉孩子它的大小,而这就是Expanded正在做的事情。此外,如果没有Expanded,孩子们已经知道它的约束,并且如果他们愿意的话,它们可以是 100% 的宽度和高度。
我错了什么?
Mar*_*rcG 14
我是文档中那篇文章的作者。
我的理解是父母不应该告诉孩子它的尺寸
不完全是。父级告诉子级约束,即每个子级可以拥有的最小和最大大小。所以孩子不可能有他想要的任何尺寸。它必须在这些限制之内。
如果父级告诉子级它可以具有最小 80 像素和最大 80 像素,那么是的,父级实际上是在告诉子级其大小,因为子级在这里可以给出的唯一答案是 80 像素。这称为“紧”约束。
这正是它Expanded所做的。它告诉孩子它必须在最小和最大时具有与 相同的大小Expanded,以便孩子只能“决定”具有与 相同的大小Expanded。
顺便说一句,如果Expanded您使用一个Flexible小部件而不是 the ,它将告诉子级的 max 大小与 相同Flexible,但 min 将设置为 0。这称为“松散”约束。
| 归档时间: |
|
| 查看次数: |
1031 次 |
| 最近记录: |