Jetpack Compose 测量流程源码分析

本文你将学到什么

通过一段代码场景,以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 函数中。使用起来很方便嘛

上一篇:C++强制类型转换操作符 const_cast


下一篇:sqlite3 删除大量数据后,db文件大小未变小问题