Skip to content
阅读进度

如何在 Compose 中实现类似传统 View 的 onMeasure 和 onLayout 自定义逻辑? ​

返回 View 与显示链路 目录

标准回答 ​

Compose 可用 Layout 的 measurePolicy 自定义测量与摆放:用 constraints 测量 measurables 得到 placeables,再调用 layout(width, height),在放置块内使用 place 或 placeRelative。需要在测量过程中按条件生成内容时,可考虑 SubcomposeLayout。

通俗例子 ​

做一个标签换行容器,先在约束内测量标签宽度,再累计一行宽度,放不下就换下一行,并计算容器总高度。

内容来源 ​

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