第一版,实现在非Compose作用域调用Compose函数:
@Composable
fun test() {
val fun1 = @Composable() {
rememberTextMeasurer()
}
val test1 = rememberTextMeasurer()
val composer = currentComposer
Button(onClick = {
// 这是非Compose作用域,在此通过我们自定义的invokeCompose方法,执行Compose函数
invokeCompose(composer, fun1)
}) {
}
}
fun invokeCompose(composer: Composer, function: @Composable () -> Unit) {
(function as ComposableLambda).invoke(composer, 100000)
}
第二版,支持返回值:
@Composable
fun test() {
val fun1 = @Composable {
// 这是Compose函数
rememberTextMeasurer()
}
val composer = currentComposer
Button(onClick = {
// 这是非Compose作用域,在此通过我们自定义的invokeCompose方法,执行Compose函数
val textMeasurer