Reputation: 717
I'm using Android Jetpack Navigation Component for my app. It has Two screen (Fragment) which are homeFragment
and loginFragment
. The homeFragment
is the start destination. After logout from homeFragment
to loginFragment
, the navigation back button shows up, it will back to homeFragment
again when click, that's not correct. I expect the back button not shown in loginFragment
, and if user press system back app exit. The nav_graph.xml
is setting properly as this post was told:
<?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/nav_graph"
app:startDestination="@id/homeFragment">
<fragment
android:id="@+id/loginFragment"
android:name="cn.helptool.qxscales.LoginFragment"
android:label="Login" >
<action
android:id="@+id/action_loginFragment_to_homeFragment"
app:destination="@id/homeFragment"
app:popUpTo="@id/nav_graph"
app:popUpToInclusive="true" />
</fragment>
<fragment
android:id="@+id/homeFragment"
android:name="cn.helptool.qxscales.HomeFragment"
android:label="Home">
<action
android:id="@+id/action_homeFragment_to_loginFragment"
app:destination="@id/loginFragment"
app:popUpTo="@id/nav_graph"
app:popUpToInclusive="true" />
</fragment>
</navigation>
Upvotes: 0
Views: 280
Reputation: 717
After read android docs
Add both of loginFragment
and homeFragment
as top level destinations, the problem fixed.
val appBarConfiguration = AppBarConfiguration.Builder(R.id.loginFragment, R.id.homeFragment).build()
setupActionBarWithNavController(navController, appBarConfiguration)
Upvotes: 1