【发布时间】:2021-11-17 09:46:44
【问题描述】:
【问题讨论】:
-
AndroidView 的工厂参数不是可组合的。它用于返回基于视图的对象。您不能在 AndroidView 中使用 LaunchedEffect。您只能在可组合内使用它。
标签: android android-jetpack-compose
【问题讨论】:
标签: android android-jetpack-compose
您只能在 @Composable 函数内运行 LaunchedEffect,这意味着您的lamba 应该用@Composable () -> Unit 注释以便兼容。但我不太确定这是一个好习惯。
【讨论】:
您正在尝试使用不在可组合范围内的可组合 LaunchedEffect。 将启动的效果移到 getMapAsync 之外。
你可以做类似的事情。
@Composable
fun MapViewContainer {
...
var mapIsReady by remember { mutableStateOf(false) }
...
mapView.getMapAsync {
mapIsReady = true
...
}
...
if (mapIsReady) {
// do some compose things
}
}
}
【讨论】: