You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 07:13:13