0

私は1つのnav_graphを使用しており、fragment1があり、サブnavグラフである他のフラグメントに移動し、いくつかのフラグメント(fragment3とfragment4)があり、開始先がfragment3で、fragment3からfragment4に行くようなシナリオがありますfragment4 には「DONE」ボタンがあります。

シナリオは次のとおりです。

  1. このサブナビゲーショングラフをfragment1から呼び出しており、fragment4からリダイレクトしたいのは親、つまりfragment1です
  2. このサブナビゲーショングラフをfragment2から呼び出しており、fragment4からリダイレクトしたいのは親、つまりfragment2です

これは、fragment4 内で完了ボタン クリック イベントを処理する方法です。

findNavController().currentDestination?.parent?.startDestination?.let {
            findNavController().popBackStack(it, true)
        } 

しかし、それは親にリダイレクトされていません。サブグラフの統計の宛先、つまりfragment3にリダイレクトされています

これが私のnav_graphがどのように見えるかです:

以下に 2 つのフラグメントを示します。

<fragment
        android:id="@+id/fragment1"
        android:name="fragment1"
        android:label="fragment1">

        <action
            android:id="@+id/action_fragment1_to_sub_graph"
            app:destination="@id/sub_graph_id" />
</fragment>

<fragment
        android:id="@+id/fragment2"
        android:name="fragment2"
        android:label="fragment2">

        <action
            android:id="@+id/action_fragment2_to_sub_graph"
            app:destination="@id/sub_graph_id" />
</fragment>

ここに私のサブナビグラフがあります:

<navigation
        android:id="@+id/sub_graph_id"
        app:startDestination="@id/fragment3">

        <fragment
            android:id="@+id/fragment3"
            android:name="fragment3"
            android:label="fragment3">
            
            <action
                android:id="@+id/action_fragment3_to_fragment4"
                app:destination="@id/fragment4" />

        </fragment>

        <fragment
            android:id="@+id/fragment4"
            android:name="fragment4"
            android:label="fragment4"/>     
</navigation>

私は何が欠けていますか?どうすればこれを達成できますか?

4

0 に答える 0