【问题标题】:Android Jetpack Navigation Exception "Navigation can not be found from the current destination" [duplicate]Android Jetpack导航异常“无法从当前目的地找到导航” [重复]
【发布时间】:2021-04-18 11:27:10
【问题描述】:

在使用操作从一个片段导航到另一个片段时,我遇到了一些 Android Jetpack 导航异常。我知道是什么问题导致了这种异常。这些在正常使用中不会发生。但是在 Crashlytics 中发现了一些异常。所以有时它似乎是一个问题。也许与生命周期有关。

我的一般问题:有没有办法或最佳实践来检查或处理这种导航异常?

将每个导航语句都放在一个 try-catch 块中并不是一个好的解决方案。

【问题讨论】:

    标签: android android-jetpack android-navigation android-jetpack-navigation


    【解决方案1】:

    当您尝试移动到您不应访问的目的地时,您可以使用此扩展程序忽略:

    fun NavController.navigateSafely(srcId: Int, actionId: Int, bundle: Bundle) {
        if (currentDestination?.id == srcId) {
            navigate(actionId, bundle)
        }
    }
    

    【讨论】:

    • 似乎是个好主意。只有一个问题:我如何获得 srcId? currentDestination.id?
    • currentDestination 来自 NavController,但 srcId 将是“您导航的预期来源”。
    • 抱歉,我知道了。很多 THX!
    • 我想我做错了什么。大多数情况下,a 得到一个 srcId = 0。你能给我一个如何调用你的函数的例子吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-15
    • 1970-01-01
    • 2020-12-27
    • 1970-01-01
    • 1970-01-01
    • 2021-12-19
    • 2021-01-09
    相关资源
    最近更新 更多