【发布时间】:2023-02-16 10:33:40
【问题描述】:
- 在屏幕中选择
- 导航到 B 屏幕
- 在B屏编辑产品信息
- 按下保存按钮,更新成功后,导航至 A 屏幕
- A 屏幕显示更新列表
屏幕
sealed class Screen ( val route: String ) { object List: Screen("product_list") //-->A Screen object EditProduct: Screen("edit_product") //-->B Screen }MainActivity onCreate 中的 NavHost
NavHost(navController = navController, startDestination = Screen.Splash.route) { composable(route = Screen.List.route) { ListScreen() } composable(route = Screen.EditProduct.route) { EditProductScreen() }A 是调出远程数据并代表列表的屏幕,B 包含从 A 中选择的产品的详细信息。
在B输入产品信息后,我想更新A的列表,当我向上导航返回A时显示修改后的信息。
遇到这种情况,我该如何处理呢?
LaunchedEffect(true) { viewModel.eventFlow.collectLatest { event -> when(event) { is UiEvent.SaveTask -> { //previousBackStackEntry?.savedStateHandle?.set<Boolean>("save_result", true) onSave() } } } }当我调用 onSave() --navcontroller::popBackStack 时, 导航到屏幕,但列表未更新
【问题讨论】:
标签: navigation android-jetpack-compose