Issue
My application has 3 modules
- app
- authentication
- home
app module has both other modules added in gradle
app module has main graph which contains nested graph from authentication and home module
I have login fragment in authentication module and I want to navigate to home fragment which resides in home module
Below are my graphs
Main graph
<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/staging_nav_graph"
app:startDestination="@id/splashFragment2">
<fragment
android:id="@+id/splashFragment2"
android:name="splash.SplashFragment"
android:label="fragment_splash"
tools:layout="@layout/fragment_splash" >
<action
android:id="@+id/action_open_login"
app:destination="@id/staging_authentication_nav_graph"
app:popUpTo="@+id/staging_nav_graph"
app:popUpToInclusive="true"/>
</fragment>
<include app:graph="@navigation/staging_authentication_nav_graph" />
<include app:graph="@navigation/staging_home_nav_graph" />
</navigation>
Authentication module graph
<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/staging_authentication_nav_graph"
app:startDestination="@id/loginFragment">
<fragment
android:id="@+id/loginFragment"
android:name="com.ocatave.featureauthentication.LoginFragment"
android:label="login_fragment"
tools:layout="@layout/login_fragment">
</fragment>
</navigation>
This is the home graph
<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/staging_home_nav_graph"
app:startDestination="@id/homeFragment">
<fragment
android:id="@+id/homeFragment"
android:name="com.octave.home.HomeFragment"
android:label="home_fragment"
tools:layout="@layout/home_fragment" />
</navigation>
How can I navigate to homeFragment from loginfragment?
Solution
I was able to do it with the help deeplink
in navigation graph
<fragment
android:id="@+id/homeFragment"
android:name="com.octave.home.HomeFragment"
android:label="HomeFragment" >
<deepLink app:uri="octave://home"/>
</fragment>
And the navigation code
findNavController().navigate(Uri.parse("octave://home"))
Answered By - WISHY
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.