Status Update
Comments
ap...@google.com <ap...@google.com> #2
Can you attach a sample project that reproduces your issue?
jb...@google.com <jb...@google.com> #3
I'm experiencing this issue in a commercial non-open source project so I'd have to provide extracted code fragments. The menu file for instance looks similar to this:
<menu>
<item
android:id="@+id/destination_one" />
<item
android:id="@+id/destination_two" />
<item
android:id="@+id/destination_three" />
<item
android:id="@+id/destination_four" />
</menu>
The menu item ids match the top level destination ids as for instance destination_one as required by the NavigationUI library.
The xml layout file of the main activity (there is only one activity) looks pretty much like this:
<androidx.coordinatorlayout.widget.CoordinatorLayout>
<androidx.constraintlayout.widget.ConstraintLayout>
<androidx.fragment.app.FragmentContainerView
android:id="@+id/navigation_host_fragment"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent"
android:layout_height="0dp"
app:defaultNavHost="true"
app:layout_constraintBottom_toTopOf="@id/bottom_navigation"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:navGraph="@navigation/main_navigation" />
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottom_navigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/navigation_host_fragment"
app:menu="@menu/main_menu" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
The main_navigation
is the first navigation graph I posted in the original post. The behavior I described above only affects the first bottomNavigation item which corresponds to the top level navGraph's startDestination.
na...@google.com <na...@google.com> #4
Yeah, what we're looking for is a full project (i.e., take a brand new project in Android Studio, put your few bits of code in, and make sure your problem reproduces) as there are a lot of little pieces that can make a difference here.
Description
Component used: Navigation Version used: 2.5.0+ Devices/Android versions reproduced on: all
When using Navigation Compose, there are situations where the changing the destination can cause the Navigation graph to be reset (this happens any time a change is made to the graph that causes it to not be equal to the previously set graph).
Although it is not likely the intended behavior in most cases since it actually causes you to reset the entire back stack, it would be nice if Navigation at least did not crash.
Here is a sample app:https://github.com/kristof-taveirne/OnBoardingCompose