android - 在不同的导航图中多次使用相同的片段
问题描述
在我的项目中,我使用来自 google 示例的 navigationextensions 类“带有 5 个不同的导航图”来处理我的项目中的底部导航栏导航。
谷歌示例:https ://github.com/android/architecture-components-samples/tree/master/NavigationAdvancedSample 。
我想在多个图表中导航到片段 A。
“现在我收到此错误:此 NavController 不知道导航目的地 action_compareListFragment_to_productPageFragment”
日志猫:
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)
我应该如何处理这种情况?
如果有人帮助我,我将不胜感激。
解决方案
您要在多个导航图中使用的片段在每个导航图中应具有相同的 id。此外,在每个图中,相同的片段应该具有相同的片段参数和具有相同 ID 的相同动作。如果您未能满足这些条件,导航组件将根本不会生成代码并且构建失败。
推荐阅读
- python - 如何根据两列的最大值拆分数组
- javascript - 从渲染器迁移到渲染器2
- linux - 如何阻止“是”命令重复其他命令?
- c# - Microsoft Azure 中托管的 .NET CORE API 应用程序超时异常(Redis 缓存、SQL、.NET Core)
- apache-spark - Simba Spark JDBC 驱动程序 - DatabaseMetaData.getColumns() 不起作用
- python - 熊猫数据帧中时间戳之间的时间差作为直方图
- maven - 故障安全错误:使用阴影插件时“清单主要属性的签名文件摘要无效”
- delphi - Delphi TCriticalSection Acquire vs Enter - 有什么区别?
- python - 在有 N 个键的迷宫中,我应该怎么做才能找到 BFS 的最短路径?
- kotlin - 你能帮我解释一下这个功能是如何工作的吗?它使用 Inline、reified、valueOf() 和 enumValues