双击视图(回收器项目)会导致 IllegalArgumentException:此 NavController 未知导航目的地

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)