我想在仅撰写应用程序中跟踪屏幕 View ,因此没有 Activity 、 fragment ,只有可组合功能。
我应该何时以及如何调用屏幕跟踪,例如火力基地?
因为在每次重组时都会执行可组合函数的主体,所以副作用也可以重复调用,而这些都不是真正的“ View ”,可组合函数可以是不可见的或只是测量的。
最佳答案
您可以使用 LaunchedEffect
或 DisposableEffect
使用常量键,例如 Unit
, 在可组合项进入组合时(在 DisposableEffect
的情况下,也在退出时)执行副作用,忽略重新组合。
// I don't think PascalCase would suit this method, as it suggests an on-screen element
@SuppressLint("ComposableNaming")
@Composable
fun trackScreenView(name: String) {
DisposableEffect(Unit){
Log.d("SCREENTRACKING", "screen enter : $name")
onDispose { Log.d("SCREENTRACKING", "screen exit : $name") }
}
}
@Composable
fun Screen1() {
trackScreenView("Screen 1")
// your screen content here
}
@Composable
fun Screen2() {
trackScreenView("Screen 2")
// your screen content here
}
关于android - 如何使用 Jetpack Compose UI 在 Android 上正确跟踪屏幕 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69463644/