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
}


以上是JetpackCompose导航以获取结果的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>