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

时间:2019-11-26 06:48:39

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

在我的项目中,我使用Google示例中的navigationextensions类“具有5种不同的导航图”来处理项目中的底部导航栏导航。

goolge范例:https://github.com/android/architecture-components-samples/tree/master/NavigationAdvancedSample

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

“现在我收到此错误:此NavController未知导航目标action_compareListFragment_to_productPageFragment”

logcat:

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)

我应该如何处理这种情况?

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

1 个答案:

答案 0 :(得分:3)

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