Jac*_*son 7 android kotlin android-jetpack android-jetpack-navigation android-jetpack-compose
正如你所看到的,这就是我使用 MaterialBottomNavigation 实现 NavHost 的方式,我在消息和提要屏幕上都有很多项目,当我在这两个屏幕之间导航时,它们会自动重新组合,但我不想,因为那里有太多数据,它会闪烁并且 fps 下降导航时低于 10,我尝试在 NavHost 之前初始化数据 viewModel,但结果仍然相同,有没有办法一次性组合屏幕并在 viewModels 数据更新时更新它们?
@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) }
}
}
Run Code Online (Sandbox Code Playgroud)
小智 0
请在您的代码上方使用此代码。它会记住您当前屏幕的状态。
val navController = rememberNavController()
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请查看: https: //developer.android.com/jetpack/compose/navigation
| 归档时间: |
|
| 查看次数: |
3207 次 |
| 最近记录: |