App crashes on adding second navHostFragment

Viewed 324

Due to a condition, I need two navHostFragment in two different activities in my app. Everything works fine until I add a second navhostframent in my app, which creates an inflateexception with error:

Binary XML file line #36: Duplicate id 0x7f09018a, tag null, or parent id 0xffffffff with another fragment for androidx.navigation.fragment.NavHostFragment

Following is my second navhost fragment:

    <fragment
                android:id="@+id/nav_host_fragment_supervisor"
                android:name="androidx.navigation.fragment.NavHostFragment"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_above="@+id/bottomNav"
                android:layout_below="@+id/appbar"
                app:defaultNavHost="true"
                app:navGraph="@navigation/navigation_graph_supervisor" />

Please help.

1 Answers

The problem is the way you have used <fragment>. You can include <fragment> in XML to embed fragment instance inside of the layout. What I can suggest is to create a whole new layout for your fragment and not use <fragment>. EDIT Create a separate layout and then embed your fragment instance inside it for example:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/fragment_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

     <fragment
            android:id="@+id/nav_host_fragment_supervisor"
           android:name="androidx.navigation.fragment.NavHostFragment"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_above="@+id/bottomNav"
            android:layout_below="@+id/appbar"
            app:defaultNavHost="true"
            app:navGraph="@navigation/navigation_graph_supervisor" />

</FrameLayout>
Related