当我尝试从 一个 Fragment 导航到另一个 Fragment 时,我遇到了新的 Android Navigation Architecture 组件的问题,我收到了这个奇怪的错误:
java.lang.IllegalArgumentException: navigation destination XXX
is unknown to this NavController
除了这个特定的导航之外,其他所有导航都可以正常工作。
我使用片段的 findNavController()
函数来访问 NavController
。
任何帮助将不胜感激。
原文由 Jerry Okafor 发布,翻译遵循 CC BY-SA 4.0 许可协议
我在我的项目中遇到了同样的问题,首先我尝试去抖动触发导航操作的视图上的点击,但经过一些实验后,我发现在非常慢的设备上去抖动应该是一个非常高的值,导致应用程序让使用快速设备的用户感觉慢。
所以我想出了以下对 NavController 的扩展,我认为它符合原始 API 并且易于使用:
请注意,我使用的是 SafeArgs 和 NavDirections。这些函数检查当前目的地的操作是否有效,并且仅在操作不为空时导航。如果导航库每次都返回正确的操作,则不需要 try catch 部分,但我想消除所有可能的崩溃。