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"
)
)
) { ... }
四、最佳实践
- ✅ 使用类型安全路由
- ✅ 合理划分导航图层级
- ✅ Bottom Navigation 保存状态
- ✅ 使用深层链接增强体验
- ✅ 添加导航过渡动画
总结
- 类型安全路由:编译时检查
- 嵌套导航:分层管理
- 深层链接:支持外部跳转
- 导航动画:提升体验