Skip to content
阅读进度

MeasureSpec 和 wrap_content match_parent 是怎么协作的? ​

返回 Framework 与系统服务 目录

标准回答 ​

MeasureSpec 包含模式和大小:EXACTLY 表示尺寸已经确定,AT_MOST 表示不能超过指定上限,UNSPECIFIED 表示这次测量没有给出同样的大小限制。父容器综合自己的约束、padding、已占用空间和子节点 LayoutParams,通过 getChildMeasureSpec 等逻辑生成子节点约束。wrap_content 通常意味着在约束内使用内容期望尺寸,match_parent 则希望使用父容器可分配的空间,但具体结果依赖父容器的模式。自定义控件可用 resolveSizeAndState,把内容尺寸与约束合并。

延伸追问 ​

不要直接把 wrap_content 等同于 AT_MOST,也不要把 match_parent 在所有情况下都等同于 EXACTLY。

内容来源 ​

用完整回答理解机制,用真实证据解释项目。