android - 如何在 Android Jetpack Compose 中传递可选的布尔参数?
问题描述
当用户可以从欢迎页面时,我正在尝试在仪表板上向用户显示欢迎消息。因此,在我的仪表板路线中,我定义了一个可选参数。
没有任何参数就可以正常访问它(因为它是可选的),但是当我添加一个时,它不再起作用了。
composable(Routes.welcome) {
WelcomeScreen {
navController.navigate("dashboard?isWelcome={true}")
}
}
composable(
"dashboard?isWelcome={isWelcome}}",
arguments = listOf(
navArgument("isWelcome") {
type = NavType.BoolType
}
)
) {
val isFromWelcome = it.arguments?.getBoolean("isWelcome") ?: false
...
}
我的错误:
Navigation destination that matches request NavDeepLinkRequest{ uri=android-app://androidx.navigation/dashboard?isWelcome={true} } cannot be found in the navigation graph
谢谢你的建议 :)
解决方案
发送布尔值
val booleanValue = true
navController.navigate("my_destination?my_arg_id=${booleanValue}")
接收布尔值
composable(
route = "my_destination?my_arg_id=${booleanValue}",
arguments = listOf(navArgument("my_arg_id") { defaultValue = false })
) { from ->
val myBooleanArg = from.arguments?.getBoolean("my_arg_id")
MySecondScreen(myBooleanArg)
}
推荐阅读
- r - plotHR (package Greg) - Spline-Plot - 根据 x 值手动设置危险比 = 1
- asp.net-mvc-5 - 如何将字符串数据类型绑定到 mVC5 中的下拉列表?
- postgresql - 无法在 Windows 上的 Postgres 数据库中创建 postGIS 扩展
- html - 如何使父元素下的子元素浮动全宽
- python - 修改作为函数内部参数传递的变量
- java - CheckedTextView 错误:android.content.res.Resources$NotFoundException:资源 ID #0x0
- kubernetes - Pod 错误:CrashLoopBackOff (GKE)
- firebase - 如何使用通过使用 REST API 获得的 userId 和令牌将文件上传到 Firebase 存储
- javascript - 是否可以一次更改网站上的所有锚标签属性?
- java - 使用 android studio 将数据导出到 google sheet:如何在活动之间传输变量?