如果后台有 SurfaceView,单击按钮后可组合消失

问题描述

setContent {
    AndroidView(modifier = Modifier) {
        SurfaceView(it).apply {
            holder.addCallback(this@MainActivity)
        }
    }
    Column {
        Button(onClick = {}) {
            Text(text = "Button")
        }
        ...
    }
}

这基本上是我在活动的 onCreate 函数中的设置。启动 Activity 工作正常,但是一旦单击按钮,可组合的 Column 就不再可见(是否没有绘制或隐藏在 SurfaceView 后面,我不知道..)。

向 AndroidView 和 Column 添加 zIndex 修饰符没有帮助。 此外,问题(或者甚至可能是 Jetpack Compose 中的错误?)只能通过 AndroidView 中的 SurfaceView 观察到,其他 Views 似乎正在工作。

解决方法

如果有人被这个问题绊倒了:

这是当前 Jetpack Compose 版本 (1.0.0-beta08) 中的一个已知错误,应该会在下一个版本中修复。

作为一种解决方法,我可以反过来做,即在 XML 中创建 SurfaceView 和 ComposableView,并将我的内容添加到 ComposableView。