android - Jetpack 组合导航的多个参数
问题描述
如何声明具有多个导航参数的导航路线?我检查了文档和所有这些 文章(似乎只是重申了文档所说的内容),我只能找到一个参数的路由示例。
这是我所拥有的:
composable(
route = "createExercise/{exerciseId}",
arguments = listOf(navArgument("exerciseId") { type = NavType.IntType })
) { backStackEntry ->
CreateExerciseScreen(
exerciseId = backStackEntry.arguments!!.getInt("exerciseId"),
)
}
这就是我想要的:
composable(
route = "createExercise/{exerciseId},{workoutId}",
arguments = listOf(
navArgument("exerciseId") { type = NavType.IntType },
navArgument("workoutId") { type = NavType.IntType },
)
) { backStackEntry ->
CreateExerciseScreen(
exerciseId = backStackEntry.arguments!!.getInt("exerciseId"),
workoutId = backStackEntry.arguments!!.getInt("workoutId"),
)
}
我为上面的示例任意选择了逗号分隔的语法来代替我正在寻找的真实语法。
所以,我的问题是:在声明导航路线时,多个参数的正确语法是什么?(那么可选参数呢?)
解决方案
根据文档:
您可以将其视为通向特定目的地的隐式深层链接。
因此它遵循与网络上任何其他隐式深度链接和 RESTful URL 的约定相同的约定,通常使用 a/
来分隔不同的参数以形成 URL 的路径 - 这涵盖了所需的参数:
createExercise/{exerciseId}/{workoutId}
根据可选参数文档,所需参数的路径可以后跟任意数量的可选参数,形式为一个或多个查询参数:
createExercise/{exerciseId}/{workoutId}?setNumber={setNumber}&repNumber={repNumber}
推荐阅读
- python - 如何在石墨烯 mongo python 中更新 EmbeddedDocument 的字段
- ebpf - 异常:执行 sudo opensnoop-bpfcc 时无法将 BPF 附加到 kprobe
- apache-spark - 为什么 Databricks Connect 测试无法在 Mac 上运行?
- java - 使用 ZoneDateTime.parse 您将如何解析以下内容
- apache-spark - Pyspark - 在交叉表后划分数据框
- ansible - 我可以在剧本中执行 ansible 剧本吗?
- c++ - ar:不保留文件修改时间
- javascript - 在字符串JS中添加变量
- sql-server - 如何使sqlcmd导出的每一行数据在csv文件中的一行中显示
- java - 将 bundle.getString() 的结果分配给 String 会引发 ClassCastException