如果背景中有 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。