android - Jetpack Compose 导航结果

标签 android android-jetpack android-jetpack-compose android-jetpack-navigation

我正在使用带有 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/

相关文章:

java - 简单计算器应用程序中的资源$NotFoundException

java - onNavigationItemSelected() 问题

android-room - Jetpack Compose - 如何在 LazyColumn 中搜索并显示房间中的特定数据?

android - SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 无效

android - 新创建联系人的指示器

android - 工作管理器 : how is network constraint handled when AlarmManager is used?

android - 如何在 Android Jetpack Compose 中更改布局子项的绘制顺序?

android - 如何避免使用painterResource()为图标着色。它将我的矢量绘制为黑色

android - Jetpack Compose – LazyColumn 不重组

android - 我应该如何用字符串过滤相应的复选框