在不同的导航图中多次使用相同的片段

mot*_*bad 6 android android-jetpack android-architecture-navigation android-jetpack-navigation

在我的项目中,我使用来自 google 示例的“带有 5 个不同导航图”的导航扩展类来处理我项目中的底部导航栏导航。

谷歌例子:https : //github.com/android/architecture-components-samples/tree/master/NavigationAdvancedSample。

我想在多个图表中导航到片段 A。

“现在我收到这个错误:导航目标 action_compareListFragment_to_productPageFragment 对这个 NavController 来说是未知的”

日志猫:

2019-11-26 10:34:02.502 6094-6094/com..app E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com..app, PID: 6094
    java.lang.IllegalArgumentException: navigation destination com..app:id/action_compareListFragment_to_productPageFragment is unknown to this NavController
        at androidx.navigation.NavController.navigate(NavController.java:863)
        at androidx.navigation.NavController.navigate(NavController.java:804)
        at androidx.navigation.NavController.navigate(NavController.java:790)
        at com..app.views.home.accountPage.FavoriteFragment.onGoToProductClicked(FavoriteFragment.java:68)
        at com..app.databinding.FavoriteListItemBindingImpl._internalCallbackOnClick(FavoriteListItemBindingImpl.java:365)
        at com..app.generated.callback.OnClickListener.onClick(OnClickListener.java:11)
        at android.view.View.performClick(View.java:6256)
        at android.view.View$PerformClick.run(View.java:24701)
        at android.os.Handler.handleCallback(Handler.java:789)
        at android.os.Handler.dispatchMessage(Handler.java:98)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6541)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
Run Code Online (Sandbox Code Playgroud)

我该如何处理这种情况?

如果有人帮助我,我将不胜感激。

Tar*_*tar 8

您要在多个导航图中使用的片段在每个导航图中应具有相同的 id。此外,在每个图中,相同的片段应该具有相同的片段参数和具有相同 id 的相同操作。如果您未能满足这些条件,导航组件将根本不会生成代码并且构建失败。

  • 为该片段创建一个嵌套图并在每个地方使用它。 (2认同)