Status Update
Comments
il...@google.com <il...@google.com> #2
Can you include a sample project that reproduces your issue?
Note that if you want to just return to your main graph (which I assume launched your login_nav_graph
), you would want to leave out the app:destination="@id/main_nav_graph"
line entirely as that will create a second instance of your main_nav_graph
.
go...@gmail.com <go...@gmail.com> #3
Thank you! While working on a minimal repro and keeping your comment in mind, I solved my problem.
My problem was partly that I had an app:destination
in my pop action, but also that the action leading to login_nav_graph
was popping:
<action
android:id="@+id/logout"
app:destination="@id/login_nav_graph"
app:popUpTo="@id/main_nav_graph"
app:popUpToInclusive="true" />
Here is a working sample of what I wanted to achieve:
main_nav_graph.xml
<?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"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main_nav_graph"
app:startDestination="@id/mainFragment">
<fragment
android:id="@+id/mainFragment"
android:name="app.reitan.navigationrepro.MainFragment"
android:label="fragment_main"
tools:layout="@layout/fragment_main">
<action
android:id="@+id/to_login_nav_graph"
app:destination="@id/login_nav_graph"/>
</fragment>
<include app:graph="@navigation/login_nav_graph" />
</navigation>
login_nav_graph.xml
<?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"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/login_nav_graph"
app:startDestination="@id/loginFragment">
<fragment
android:id="@+id/loginFragment"
android:name="app.reitan.navigationrepro.LoginFragment"
android:label="fragment_login"
tools:layout="@layout/fragment_login">
<action
android:id="@+id/pop_login_nav_graph"
app:popUpTo="@id/main_nav_graph"
app:popUpToInclusive="true" />
</fragment>
</navigation>
jb...@google.com <jb...@google.com> #4
Even though the error was probably in my code, this is still a change of behavior, as this used to work fine in 2.3.0. Just so you know :)
go...@gmail.com <go...@gmail.com> #5
Trying to recreate this issue in a sample project as well, but I am seeing the same thing. However I am navigating by id instead of action.
jb...@google.com <jb...@google.com>
ap...@google.com <ap...@google.com> #6
Here is the sample project that reproduces the issue:
jb...@google.com <jb...@google.com> #7
While the project in
Description
Component used: Navigation Version used: 2.7.7 Devices/Android versions reproduced on: Android 14 Pixel 3A Emulator & Android 14 Pixel 6 Pro
When using a
NavHost
to navigate between pages, the new composable is animated in from the top left. This can be seen in my own project compiler in release mode ( shown in the video2024-03-18 20-38-28.mkv
), but also in a sample project I made to test this bug.In the attached sample project, it seems to become much less common after the page is switched a few times, but resetting the emulator makes it come back. The video
2024-03-18 21-11-39.mkv
shows the same problem occurring in the sample project with aNavigationBar
, and2024-03-18 21-21-51.mkv
, where aNavigationBar
is not present.