在没有任何多次调用且当前目的地正确的情况下,无法从当前目的地找到导航操作/目的地

问题描述 投票:0回答:0

使用 NavController 的导航适用于我的应用程序中的其他片段,但现在我创建了一个需要导航到现有 FragmentB 的 FragmentA。有不同的片段成功调用

findNavController().navigate(directions)
到 FragmentB。 我创建了一个特定于 FragmentA

的导航文件
<?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"
    android:id="@+id/fragmentA_nav"
    app:startDestination="@id/fragmentA">

    <fragment
        android:id="@+id/fragmentA"
        android:name="app.packageA.FragmentA"
        android:label="FragmentA" >
        <action
            android:id="@+id/action_fragmentA_to_fragmentB"
            app:destination="@id/fragmentB" />
    </fragment>
</navigation>

当我打电话给

findNavController().navigate(FragmentADirections.actionFragmentAToFragmentB())
时,我已经检查过
findNavController().currentDestination?.id
R.id.FragmentA
相同,但是我得到了这个错误

    java.lang.IllegalArgumentException: Navigation action/destination .debug:id/action_fragmentA_to_fragmentB cannot be found from the current destination 
    Destination(app.debug:id/fragmentA) label=FragmentA class=app.package.FragmentA

我还检查了没有多次调用导航。使用Android Studio 的图形设计器制作导航文件时也会出现同样的错误。它适用于其他片段及其各自的导航文件,但不适用于我刚才为其创建新导航文件的新片段。

android kotlin navigation fragment
© www.soinside.com 2019 - 2024. All rights reserved.