在运行时获取 Jetpack Compose 组件层次结构?

Sam*_*eff 5 android kotlin android-jetpack-compose

是否可以获取从根到特定组件的组件层次结构。

类似于使用onNodeWithTag获取组件,然后向上遍历父级来打印完整的层次结构。这可以在 Android Compose 本身的运行时完成(而不是在 E2E 测试期间)吗?

例子:

@Composable
fun MyScreen() {
    Surface {
        Button(onClick = { println("Clicked: " + getComponentHierarchyHereFromRootToButton()) }
    }
}
Run Code Online (Sandbox Code Playgroud)

所以当我点击按钮时它会打印

Clicked MyScreen.Surface.Button
Run Code Online (Sandbox Code Playgroud)

我发现这个库可以自上而下地打印出整个层次结构。我不确定如何知道我正在搜索哪个组件(触发回调的组件)。如果这个问题得到解决,从该组件向上查看会比自上而下寻找它更好(但不一定会破坏交易)。

https://github.com/square/radiography