用途:在 Android 项目中使用 Jetpack Navigation Compose 实现类型安全的路由与参数传递,替代传统的字符串路由写法。
主要能力与要求:
- 依赖 Navigation Compose 2.8.0 及以上版本。
- 路由使用 @Serializable 的 object 或 class 定义,而非字符串。
- 参数不手动解析 Bundle,改用 .toRoute<T>() 获取。
- 大型应用拆分为嵌套导航图,通过 navigation 扩展函数组织。
- 导航事件从 Screen 中提升(hoist),Composable 屏幕只接收回调,如 onNavigateToX。
示例:为商品详情参数定义 @Serializable data class ProductDetail(val productId: Long),使用类型化目的地导航,并通过 toRoute<ProductDetail>() 读取参数。
反模式:禁止使用字符串路由;禁止在 Composable 中直接持有 NavController,应将导航事件提升为屏幕级回调。
适用场景:定义类型化 Compose 目的地与参数时使用;XML 相关场景应延后处理。
限制:资料未提供更多安装命令、版本兼容细节或完整代码示例。