【发布时间】:2021-05-18 09:21:56
【问题描述】:
正如您所见,这就是我使用 MaterialBottomNavigation 实现 NavHost 的方式,我在 Messages 和 Feeds 屏幕上都有很多项目,当我在这两个屏幕之间导航时,它们会自动重新组合但我不想因为那里有太多数据它在导航时闪烁并且 fps 下降到 10 以下,我尝试在 NavHost 之前初始化数据视图模型但结果仍然相同,有没有办法组合屏幕一次并在视图模型时更新它们数据更新了吗?
@Composable
private fun MainScreenNavigationConfigurations(
navController: NavHostController,
messagesViewModel: MessagesViewModel = viewModel(),
feedsViewModel: FeedsViewModel = viewModel(),
) {
val messages: List<Message> by messagesViewModel.messages.observeAsState(listOf())
val feeds: List<Feed> by feedsViewModel.messages.observeAsState(listOf())
NavHost(
navController = navController,
startDestination = "Messages"
) {
composable("Messages") {
Messages(navController, messages)
}
composable("Feeds") { Feeds(navController, feeds) }
}
}
【问题讨论】:
-
您找到解决方案了吗?我希望解决相同的行为。
-
@Jackson 我也有兴趣解决这样的问题。找到解决方案了吗?
标签: android kotlin android-jetpack android-jetpack-compose android-jetpack-navigation