Fixed
Status Update
Comments
il...@google.com <il...@google.com> #2
Please provide a minimal sample project that reproduces this issue.
il...@google.com <il...@google.com>
ap...@google.com <ap...@google.com> #3
Sure, I created a minimal sample app for you:
Just click "Next Fragment" multiple times, then press the back button or perform the back gesture multiple times in quick succession.
Note: I tested this on a Pixel 8 with Android 14. Also, I have the predictive back animations enabled in the developer options.
il...@google.com <il...@google.com> #4
Just FYI: Still happens on fragment library version 1.7.1
.
Description
Component used: Fragment Version used: 1.3.0-alpha06
When using
setReorderingAllowed(true)
(such as when using the Navigation Architecture Component), doing areplace()
will cause the new fragment to go throughonCreateView()
,onViewCreated()
and potentially up throughonStart()
andonResume()
before the previous fragment is stopped.This means that any values that are set on a shared view model (i.e., when returning a result ) during one of those methods is immediately sent to the other fragment instead of waiting for the user to return to the previous fragment.
Ideally, the previous fragment should be stopped (but specifically not have its view destroyed) prior to the new fragment moving up through lifecycle methods.