Bia*_*ali 8 android google-maps-android-api-2 android-jetpack android-jetpack-navigation android-jetpack-compose
我有两个屏幕 - MapScreen(Google Map SDK)和Search Screen。
我通过按顶部的“搜索”按钮从 MapScreen 导航到 SearchScreen。
当我在搜索屏幕(白色屏幕)上时 - 我按后退按钮导航回地图屏幕。
当我们向后导航时,整个 MapScreen(尤其是 Google 地图)会重新渲染,这会造成向后导航的延迟。
如何防止地图屏幕在返回时重新渲染?
我的导航代码:
val navController = rememberNavController()
NavHost(
navController = navController,
startDestination = Route.MAP
) {
composable(Route.MAP) {
MapScreen(onNextClick = {
navController.navigate(Route.SEARCH)
})
}
composable(Route.SEARCH) {
SearchScreen()
}
}
Run Code Online (Sandbox Code Playgroud)
使用 NavController 无法执行任何操作。你实际上是在告诉它销毁一个屏幕以转到下一个屏幕。因此,当您返回时,它必须重新渲染第一个屏幕。
您需要做的就是在地图屏幕顶部显示搜索屏幕(您实际上可以在地图屏幕顶部显示 SearchScreen 可组合项,或者将其放在弹出窗口、底部工作表、对话框等中)
编辑:
| 归档时间: |
|
| 查看次数: |
2067 次 |
| 最近记录: |