本文你将学到什么
通过一段代码场景,以Layout 函数为入口分析源码,解答一些心中所惑,如通过 Modifier 设置大小是如果起作用的?MeasurePolicy 接口的 measure 方法是怎么调用的?布局中的测量流程是什么样的?控件是怎么确认大小的?
回顾
在 JetPack Compose 手写一个 Row 布局 | 自定义布局 一文中我们已经了解了如何自定义 Layout,使用 Layout 函数即可。
@Composable inline fun Layout(
content: @Composable () -> Unit,
modifier: Modifier = Modifier,
measurePolicy: MeasurePolicy
) {}
我们可以通过参数 modifier 给布局指定大小,在 measurePolicy 中对 children 进行测量和布置,布局的 children 写在 content 函数中。使用起来很方便嘛