Be able to setMaxLifecycle during the fragment transaction #248
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Story
There's a known issue that if you use the hiding strategy on the fragment switch, the fragment's lifecycle won't be changed.
However, there's a new setMaxLifecycle function been added in the
FragmentTransaction
which can set the maximum lifecycle state during the transaction, andViewPager2.FragmentStateAdapter
actually has such implementation.Bringing this function call to the library for the hiding strategy, so the fragment lifecycle will be triggered properly during switching.
What have been changed in this PR:
setMaxLifecycleOnSwitch
flag inFragNavController
, and set max lifecycle to "Started" for those fragments that are going to be hidden in the transaction.Related issue: #244
Original pull request: bandlab#2 coauthored by @gildor