JetpackCompose导航以获取结果
我在 Compose 版本中使用 Jetpack Navigation 库。我正在设置导航,就像这里显示的那样
我希望能够从屏幕 A 导航到屏幕 B。一旦 B 执行某些操作并从返回堆栈中弹出,它将返回屏幕 A 可以访问的结果。
我在这里找到了一种使用活动来做到这一点的方法,但我想避免创建任何额外的活动并在撰写中执行此操作。
回答
从要返回数据的 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
}