Mit*_*arı 5 navigation android android-jetpack android-architecture-navigation
我正在我当前正在从事的项目中使用导航组件。问题是,当我同时单击两个项目时,会导致findNavController.navigate()被调用两次。所以它抛出IllegalArgumentException: navigation destination is unknown to this NavController. 我认为它会到达目的地,然后尝试在没有目标目的地的目的地中第二次触发。目的地接待...
有没有办法检查当前片段是否已指定目的地?
现在我已经用下面的代码解决了问题,但它看起来不正确。
fun NavController.navigateSafe(direction: NavDirections) {
try {
navigate(direction)
} catch (exception: IllegalArgumentException) {
Log.e("NavigationExtensions", exception.message.orEmpty())
}
}
Run Code Online (Sandbox Code Playgroud)
更新
感谢@Md.Asaduzzaman 分享的链接帮助了我。解决方案是;
fun NavController.navigateSafe(direction: NavDirections) {
currentDestination?.getAction(direction.actionId)?.let { navigate(direction) }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1051 次 |
| 最近记录: |