android - 如何使用 Jetpack Compose + Navigation 处理后退导航(无 fragment )

标签 android navigation android-jetpack-compose dagger-hilt jetpack-compose-navigation

我正在尝试导航让我们说从入职到仪表板等,一旦用户点击仪表板就会弹出入职,但仍然有“后退 Action ”,我最终再次入职。
这是示例代码:

@AndroidEntryPoint
class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        setContent {
            MainUI()
        }
    }
}
@Composable
fun MainUI() {
    val navController = rememberNavController()

    NavHost(
        navController = navController,
        startDestination = "onboarding"
    ) {
        composable("onboarding") {
            Column {
                Text("I am on onboarding")
                Button(onClick = {
                    navController.navigate("dashboard") {
                        popUpTo("dashboard") // I want to get rid of onboarding here
                    }
                }) {
                    Text("go to dashboard")
                }
            }
        }
        composable("dashboard") {
            Column {
                Text("I am on dashboard")
                Button(onClick = {
                    navController.navigate("detail")
                }) {
                    Text("go to detail")
                }
            }
        }
        composable("detail") {
            Text("I am on detail")
        }
    }
}
这也不起作用
navController.navigate("dashboard") {
    popUpTo("dashboard") {
            inclusive = true // no difference
        }

// ....

    popUpTo("onboarding") // also nothing

// ....

    popUpTo("onboarding") {
            inclusive = true // this crashes -> NavGraph cannot be cast to ComposeNavigator$Destination
        }

}

出于某种原因,这种工作方式,所以仪表板被解雇了,从细节上我最终加入了🤦
navController.navigate("detail") {
     popUpTo("dashboard") {
            inclusive = true
     }
}

最佳答案

我发现我的解决方案很容易,如果我错了,请赐教。

navController.popBackStack()

关于android - 如何使用 Jetpack Compose + Navigation 处理后退导航(无 fragment ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68560948/

相关文章:

android - 在 Android Ice Cream Sandwich 中的 'Contacts' 应用程序之间滚动

html - 具有固定宽度的中心导航栏

android - 如何通过委托(delegate)使用 mutableState 并使其可传递给另一个函数?

android - Jetpack Compose 中没有涟漪效应

android - 如何获取模拟器壁纸?

android - 在 BackPressed 上跳过一些 fragment

html - CSS 子菜单定位适用于 Chrome 和 Safari,但不适用于 IE 和 Firefox

android - 网络连接已关闭,但位置提供程序是 NetworkProvider

java - 在开始新 Activity 之前等待 HttpRequest 完成

android - Jetpack Compose 滚动条