Compose Navigation 进阶:深层链接与嵌套导航

2024-06-17 · 26 min · 导航

Compose Navigation 提供了强大的导航功能,支持深层链接、嵌套导航、类型安全参数等高级特性。

一、类型安全路由

@Serializable
data class ArticleDetail(val id: String)

NavHost(navController, startDestination = Home) {
    composable<ArticleDetail> { backStackEntry ->
        val detail: ArticleDetail = backStackEntry.toRoute()
        ArticleDetailScreen(articleId = detail.id)
    }
}

二、嵌套导航

fun NavGraphBuilder.homeGraph(navController: NavController) {
    navigation<HomeGraph>(startDestination = Home) {
        composable<Home> { HomeScreen() }
        composable<ArticleDetail> { ... }
    }
}

三、深层链接

composable<ArticleDetail>(
    deepLinks = listOf(
        navDeepLink<ArticleDetail>(
            basePath = "https://example.com/article"
        )
    )
) { ... }

四、最佳实践

总结