Android中使用Kotlin+NavHostController时如何消除屏幕闪烁?
解决Jetpack Compose导航页面切换闪烁问题
我正在开发一款基于Kotlin和Jetpack Compose的Android应用,使用NavHostController实现页面切换。
初始化代码
private lateinit var navController: NavHostController setContent { navController = rememberNavController() Theme { ... } }
导航实现方式
NavHost(navController = navController, startDestination = *route*) { composable(route = *route*) { } composable(route = *route*) { } ... }
我在每个composable内部的ChildComposable组件中调用navController.navigate(route = *route*)来完成页面切换。
应用仅使用一个未设置背景的Activity,通过以下通用组件为所有页面添加背景图:
@Composable fun ContentWithBackground( content: @Composable () -> Unit ) = Box(modifier = Modifier.fillMaxSize()) { Image( painter = rememberAsyncImagePainter(model = R.drawable.background), contentDescription = "背景图", contentScale = ContentScale.Crop, modifier = Modifier.fillMaxSize() ) content() }
当前的导航逻辑导致页面切换时出现屏幕闪烁现象,请问有什么办法可以解决这个问题,实现平滑的页面切换效果?
内容的提问来源于stack exchange,提问作者Semerkosa
相关产品推荐
相关产品推荐

