如果背景中有 SurfaceView,则单击按钮后可组合项会消失
Composable disappears after clicking on button, if there is a SurfaceView in the background
setContent {
AndroidView(modifier = Modifier) {
SurfaceView(it).apply {
holder.addCallback(this@MainActivity)
}
}
Column {
Button(onClick = {}) {
Text(text = "Button")
}
...
}
}
这基本上就是我在 activity 的 onCreate 函数中的设置。启动 activity 工作正常,但一旦单击按钮,Column 可组合项就不再可见(它是否未被绘制或隐藏在 SurfaceView 后面,我不知道..)。
向 AndroidView 和 Column 添加 zIndex 修饰符没有帮助。
此外,问题(或者甚至可能是 Jetpack Compose 中的错误?)只能通过 AndroidView 中的 SurfaceView 观察到,其他视图似乎在工作。
如果有人被这个问题绊倒了:
这是当前 Jetpack Compose 版本 (1.0.0-beta08) 中的一个已知错误,应该会在下一版本中修复。
作为一种解决方法,我可以反过来做,在 XML 中创建 SurfaceView 和 ComposableView,然后将我的内容添加到 ComposableView。
setContent {
AndroidView(modifier = Modifier) {
SurfaceView(it).apply {
holder.addCallback(this@MainActivity)
}
}
Column {
Button(onClick = {}) {
Text(text = "Button")
}
...
}
}
这基本上就是我在 activity 的 onCreate 函数中的设置。启动 activity 工作正常,但一旦单击按钮,Column 可组合项就不再可见(它是否未被绘制或隐藏在 SurfaceView 后面,我不知道..)。
向 AndroidView 和 Column 添加 zIndex 修饰符没有帮助。 此外,问题(或者甚至可能是 Jetpack Compose 中的错误?)只能通过 AndroidView 中的 SurfaceView 观察到,其他视图似乎在工作。
如果有人被这个问题绊倒了:
这是当前 Jetpack Compose 版本 (1.0.0-beta08) 中的一个已知错误,应该会在下一版本中修复。
作为一种解决方法,我可以反过来做,在 XML 中创建 SurfaceView 和 ComposableView,然后将我的内容添加到 ComposableView。