From this question, it seems I can set start destination argument by passing them as default values but the following code is giving me an issue.
val route = "FORM_DECISION_QUESTION/{FORM_DETAIL_ID_KEY}/{FORM_QUESTION_ID_KEY}?FORM_PARTICIPATION_ID_KEY={FORM_PARTICIPATION_ID_KEY}"
NavHost(
navController = navController,
startDestination = route,
modifier = modifier,
) {
composable(
route = route,
arguments = listOf(
navArgument(FORM_DETAIL_ID_KEY) {
type = NavType.StringType;
defaultValue = "453"
},
navArgument(FORM_QUESTION_ID_KEY) {
type = NavType.StringType;
defaultValue = "534"
},
navArgument(FORM_PARTICIPATION_ID_KEY) {
type = NavType.StringType
nullable = true
defaultValue = null
}
)
) {
//logging the argument values here
SingleFormDecisionQuestion()
}
}
When I log {it.arguments} I get
Bundle[{FORM_PARTICIPATION_ID_KEY={FORM_PARTICIPATION_ID_KEY}, FORM_QUESTION_ID_KEY={FORM_QUESTION_ID_KEY}, FORM_DETAIL_ID_KEY={FORM_DETAIL_ID_KEY}}]
which is not What I expect but when I navigate to that destination from a different destination
I get
Bundle[{android-support-nav:controller:deepLinkIntent=Intent { dat=android-app://androidx.navigation/… }, FORM_PARTICIPATION_ID_KEY=4, FORM_QUESTION_ID_KEY=3, FORM_DETAIL_ID_KEY=14199608}]
Which is what I would expect.