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

Android Jetpack Compose Navigation无法弹出起始目的地回退栈问题求解

问题原因

你当前配置的popUpTo参数为route_to_b,仅会将回退栈中到B页面(含B页面,inclusive = true触发)的所有页面弹出,作为起始目的地的A仍保留在栈底,因此点击返回键会回到A页面。

解决方案

要清空A、B两个页面,需要将popUpTo的目标指定为A页面的路由,同时开启inclusive = true将A也弹出回退栈,修改B跳转到C的逻辑如下:

Button(onClick = {
    navController.navigate("route_to_c") {
        // 弹出回退栈直到A页面的位置,同时包含A页面一起弹出
        popUpTo("route_to_a") {
            inclusive = true
        }
        // 可选配置:避免C已在栈顶时重复创建实例
        launchSingleTop = true
    }
}) {}

如果不想硬编码路由字符串,也可以直接弹出到当前导航图的根节点,效果一致:

Button(onClick = {
    navController.navigate("route_to_c") {
        popUpTo(navController.graph.id) {
            inclusive = true
        }
        launchSingleTop = true
    }
}) {}

修改后跳转至C页面时,回退栈内仅保留C页面,点击系统返回键会直接退出应用,符合需求。

内容的提问来源于stack exchange,提问作者Bruno Baccho

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 08:45:04