IllegalArgumentException:无法从当前目标找到导航操作/目标包名称/action_xxx

2024-02-20

当我尝试在视图页面中从一个片段导航到另一个片段时,我遇到了 Android 导航架构组件的问题,出现以下错误:

java.lang.IllegalArgumentException: Navigation action/destination 
com.gigaweb.mysales:id/action_mainFragment_to_addTransactionFragment cannot be found from the current 
destination Destination(com.gigaweb.mysales:id/pagerFragment) label=fragment_pager class=com.gigaweb.mysales.PagerFragment

我有一个 viewpager,用来在两个片段之间导航,它工作得很好。问题是我在其中一个片段中有一个按钮,该按钮还用于使用导航控制器导航到另一个片段,当单击该按钮时,应用程序崩溃,并且出现上述错误。

Update这是导航图

正如您所看到的,SignIn Fragment 是起始目的地,并且有一个操作喜欢它作为 ViewPager 的主机的 pagerFragment

我希望应用程序的工作方式是:

  1. 当应用程序启动时,将显示登录片段......正在工作

  2. 单击登录按钮时导航到 PagerFragment ..... 工作

  3. 通过向左或向右滑动在 MainFragment 和 AdminFragment 之间导航......正在工作

  4. 单击 FAB 按钮时导航至“添加事务片段”......不工作!单击按钮时,应用程序崩溃。

Update这是导航图的 XML 代码

<?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/nav_graph"
app:startDestination="@id/signInFragment">

<fragment
    android:id="@+id/signInFragment"
    android:name="com.gigaweb.mysales.SignInFragment"
    android:label="fragment_sign_in"
    tools:layout="@layout/fragment_sign_in" >
    <action
        android:id="@+id/action_signInFragment_to_pagerFragment"
        app:destination="@id/pagerFragment" />
</fragment>
<fragment
    android:id="@+id/addTransactionFragment"
    android:name="com.gigaweb.mysales.AddTransactionFragment"
    android:label="AddTransactionFragment" >
    <action
        android:id="@+id/action_addTransactionFragment_to_mainFragment"
        app:destination="@id/mainFragment" />
</fragment>
<fragment
    android:id="@+id/mainFragment"
    android:name="com.gigaweb.mysales.MainFragment"
    android:label="MainFragment" >
    <action
        android:id="@+id/action_mainFragment_to_addTransactionFragment"
        app:destination="@id/addTransactionFragment" />
</fragment>
<fragment
    android:id="@+id/adminFragment"
    android:name="com.gigaweb.mysales.AdminFragment"
    android:label="AdminFragment" />
<fragment
    android:id="@+id/pagerFragment"
    android:name="com.gigaweb.mysales.PagerFragment"
    android:label="fragment_pager"
    tools:layout="@layout/fragment_pager" />
</navigation>

如果你不navigate() to MainFragment and AdminFragment,您将保留在上次导航到的目的地:PagerFragment,这是预期的行为。 NavController 对子片段一无所知,例如 ViewPager 中的片段PagerFragment因此你从未在MainFragment作为目的地。

如果你从来没有navigate() to MainFragment or AdminFragment并且它们只能作为 ViewPager 的一部分查看,然后MainFragment and AdminFragment不应该be在你的图表中。任何来自片段内的动作PagerFragment的 ViewPager 应该是以下操作PagerFragment直接(您实际所在的目的地)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IllegalArgumentException:无法从当前目标找到导航操作/目标包名称/action_xxx 的相关文章

随机推荐

  • NSIS - 检查进程是否存在(nsProcess 不工作)

    对于我的 NSIS 卸载程序 我想检查进程是否正在运行 FindProcDLL 在 Windows 7 x64 下无法工作 所以我尝试了 nsProcess 我从网站下载了1 6版本 http nsis sourceforge net Ns
  • mongodb 按多个字段对值进行分组

    例如 我有这些文件 addr address1 book book1 addr address2 book book1 addr address1 book book5 addr address3 book book9 addr addre
  • 在asp.net中设置图像过期日期

    当我获得主机时 在 Visual Studio 和 IIS7 中使用 asp net 我有一个充满图标的文件夹 这些图标很少改变并且在每个页面上都使用 有没有一种方法可以将某个目录设置为每 2 个小时左右过期一次 这样我就可以减少对服务器的
  • 在 php 中使用数组查找百分位

    我有一个像这样的数组 array 45 gt 5 42 gt 4 9 48 gt 5 41 gt 4 8 40 gt 4 9 34 gt 4 9 这里的索引是userid而价值就是他的分数 现在我想要的是为用户实现百分位 例如 45 48
  • winapi:创建进程但隐藏进程的窗口?

    我正在使用 CreateProcess 创建一个 cmd exe 进程 该进程传递一个执行并退出的参数 这使得命令提示符在屏幕上闪烁 我试图通过将 STARTUPINFO struct wShowWindow 设置为 SW HIDE 来避免
  • C# 将变量复制到缓冲区而不产生垃圾?

    在 C Net 3 5 及更高版本 中是否可以将变量复制到 byte 缓冲区中 而不会在进程中创建任何垃圾 例如 int variableToCopy 9861 byte buffer new byte 1024 byte bytes Bi
  • 如何使用SharpDX绘制透明表面?

    这个问题是基于进一步调查this https stackoverflow com questions 28960993 hud basics using sharpdx how to draw over the screen surface
  • MICO Corba 的直接替代品?

    我们目前正在使用 MICO 建立服务器和客户端之间的通信 其中客户端是用 C 编写的模拟器 服务器是显示模拟中发生的动画的 java 程序 看来 MICO 的开发已经放缓到几乎停止的状态 并且只允许我们破解它们的错误 因为我们没有时间首先弄
  • Python(2.x)列表/子列表选择-1怪异

    所以我一直在玩Python并注意到一些看起来有点奇怪的事情 的语义 1从列表中选择似乎不一致 所以我有一个数字列表 ls range 1000 当然 列表的最后一个元素ls 1 但如果我获取其中的子列表 以便获得从中点到结尾的所有内容 我会
  • 如何防止在 kivy 应用程序中关闭 x 上的窗口

    有没有办法通过单击右上角的 x 直到满足特定条件来防止关闭kivy窗口 您可以通过绑定窗口来做到这一点on request close有一个函数来检查是否满足条件 from kivy app import App from kivy cor
  • RabbitMQ 中的并发

    经过一周的编码和搜索论坛后 似乎是时候问 我有一个 C 应用程序 它使用 EventingBasicConsumer 处理 RabbitMQ 发送的消息 我想同时处理多个消息 因此我在同一连接上实例化了几个通道 本例中为 8 个 每个通道都
  • 如何使用 jquery/ajax 将数据发送到 json 文件

    我发现了无数关于如何使用 jQuery 和 ajax 从 json 文件检索数据的教程 但没有关于如何将数据 POST 到 json 文件 如果有人可以向我展示或向我发送一个关于如何执行此操作的小脚本 那就太好了 我到处搜索如何做到这一点
  • ClassNotFoundException:如何查找Java中的依赖冲突

    在使用 Atmosphere servlet 的测试 WebSocket 应用程序中 我收到以下异常 SEVERE Servlet service for servlet AtmosphereServlet threw exception
  • SQL Server + 动态查询“无效的列名”

    我正在尝试执行以下动态查询 但出现错误 无效的列名 cat DECLARE SQLDelQuery AS NVARCHAR 1200 DECLARE MemberNames varchar 50 SET MemberNames cat SE
  • subprocess.check_output() 似乎不存在(Python 2.6.5)

    我一直在阅读有关 subprocess 模块的 Python 文档 请参阅here http docs python org library subprocess html subprocess replacements 它谈论了一个sub
  • “用瓷砖填充图案”难题

    我在为基于图块的游戏编写随机关卡生成器时遇到了一个有趣的问题 我已经为其实现了一个强力求解器 但它的速度呈指数级缓慢 并且绝对不适合我的用例 我不一定要寻找完美的解决方案 我会对性能良好的 足够好 的解决方案感到满意 问题陈述 假设您拥有以
  • SIFT 描述符的计算复杂度?

    The SIFT描述符 http www aishack in tutorials sift scale invariant feature transform introduction 是 David Lowe 提出的局部描述符 该描述符
  • AFNetworking 2.0 请求自定义标头

    我试图避免在这里问这样的新问题 但我是一名正在学习 IOS 的 Android 开发人员 我一生都无法弄清楚如何使用 AFNetworking 2 0 在我的帖子请求中添加一个简单的标头 下面是到目前为止我的代码 如果我想发出不需要标头的请
  • 在 Firebase Flutter 上更新数组内的项目

    我制作了一个聊天应用程序 我希望用户能够将聊天室标记为收藏夹或将聊天室静音 我的数据库的结构如下图所示 我想要的是当用户尝试将聊天室静音或将其标记为收藏夹时 我只更新与 chatroomId 匹配的项目 但经过大量搜索后 我发现 Fireb
  • IllegalArgumentException:无法从当前目标找到导航操作/目标包名称/action_xxx

    当我尝试在视图页面中从一个片段导航到另一个片段时 我遇到了 Android 导航架构组件的问题 出现以下错误 java lang IllegalArgumentException Navigation action destination