我已经在我的应用程序中为HistoryDetail
屏幕创建了一个目标。
composable(
route = "HistoryDetail/{webpage}",
arguments = listOf(
navArgument("webpage") {
type = NavType.StringType
}
),
) { entry ->
val text = entry.arguments?.getString("webpage") ?: ""
}
字符串
当我试图通过调用导航到该屏幕时:
navController.navigate("HistoryDetail/http://alphaone.me/")
型
我得到illegalArgumentException
与下面的消息。
java.lang.IllegalArgumentException: Navigation destination that matches request NavDeepLinkRequest{ uri=android-app://androidx.navigation/HistoryDetail/http://alphaone.me/ } cannot be found in the navigation graph NavGraph(0x0) startDestination={Destination(0x78c9ba0c) route=Home}
型
编辑:
如果我调用:navController.navigate("HistoryDetail/test")
,它就可以工作。
2条答案
按热度按时间aiazj4mn1#
导航路由相当于url,一般来说你应该在这里传递类似
id
的东西。当你需要在另一个url中传递一个url时,你需要对它进行编码:
字符串
请注意,您不需要在视图端解码参数,因为Navigation库将为您完成此操作。
wztqucjr2#
怎么会这样?
字符串