【发布时间】:2021-06-13 20:24:17
【问题描述】:
video with bug 我的应用架构看起来像:viewModel + Compose layout per screen。在我的视图模型中,我有 Channel(),我在其中处理来自屏幕的操作:
init {
viewModelScope.launch {
try {
actions.receiveAsFlow().collect { action ->
when (action) {
//handle actions here
}
}
}
}
在主屏幕中,我有帖子列表。问题是当我选择帖子并将用户导航到 PostDetails 屏幕时,我可以选择另一个帖子,尽管带有帖子的列表处于底层。我认为它与 Home viewModel 相关,并且该操作流程在后台运行。任何解决方案我应该改变什么?
@Composable
fun AppNavigationHost(appNavController: NavController) {
NavHost(
navController = appNavController as NavHostController,
startDestination = PostDetails.route
) {
composable(Default.route) {}
composable(PostDetails.route) { it ->
it.arguments?.getString("post").let {
val post = Gson().fromJson(it, Post::class.java)
PostDetailsScreen(post, appNavController)
}
}
}
}
【问题讨论】:
标签: android kotlin navigation android-jetpack-compose