错误:
java.lang.IllegalArgumentException: Navigation destination that matches request NavDeepLinkRequest{ uri=android-app://androidx.navigation/book_screen } cannot be found
字符串
Navroot主机:
animatedCompose("${Graph.BOOK}/{id}",
arguments = listOf(
navArgument("id"){
type = NavType.LongType
defaultValue = -1
}
)
){
val id = it.arguments?.getInt("id") ?: -1
val actionText = if(id != -1) "Save" else "Add"
val title = if(id != -1) "Edit Book" else "Add New Book"
BookScreen(navHostController, title=title, actionText=actionText)
}
型
从另一个屏幕中:
Scaffold(
floatingActionButton = {
FloatingActionButton(onClick = {
rootNavHostController.navigate(Graph.BOOK)
}) {
Icon(Icons.Filled.Add,null)
}
}
型
我假设,你可以把{id}
作为一个可选的参数。但是,不确定为什么现在事情不起作用。
3条答案
按热度按时间8wigbo561#
也许有人还在寻找这个答案:我有这个问题,因为发送了一个JSON到另一个屏幕,它包含“/",所以我只是这样替换它:
字符串
uajslkp62#
通过以下方式解决:
字符串
kgsdhlau3#
对于任何人谁想要一个简单的解决方案,不使用 *Gson或什么的。今天我在一个应用程序的工作,其中一个要求是发送一个图像链接到另一个屏幕。
URL是这样的
https://westandwithpalastine.com/gaza/
. URL是一个字符串,但当我使用Parcelable将其发送到另一个屏幕时,它假设它是“(Uri)”所以我得到了这个错误消息字符串
那么解决方案是什么
使用encoded URL,它工作得很好,你可以像这样使用它
型
现在它可以正常工作了。如果你想知道路由函数是如何工作的,这里是完整的代码。
型
Happy coding!:D