我正在使用带有 Compose 版本的 Jetpack Navigation 库。我正在设置导航,如图所示 here
我希望能够从屏幕 A 导航到屏幕 B。一旦 B 执行某些操作并从返回堆栈中弹出,它将返回屏幕 A 可以访问的结果。
我找到了一种方法来使用 Activity here但我想避免创建任何额外的 Activity 并在 compose 中执行此操作。
最佳答案
从要返回数据的 Composable 中,您可以执行以下操作:
navController.previousBackStackEntry
?.savedStateHandle
?.set("your_key", "your_value")
navController.popBackStack()
然后,从源 Composable 中,您可以使用 LiveData
监听更改.val secondScreenResult = navController.currentBackStackEntry
?.savedStateHandle
?.getLiveData<String>("your_key")?.observeAsState()
...
secondScreenResult?.value?.let {
// Read the result
}
关于android - Jetpack Compose 导航结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66837132/