fix: navigation b/n single and nested frame pages (#7011)

This commit is contained in:
Manol Donev
2019-03-15 15:38:04 +02:00
committed by GitHub
parent 62913bd705
commit 91d90ccd0f
10 changed files with 170 additions and 6 deletions

View File

@@ -46,6 +46,7 @@ interface ExpandedEntry extends BackstackEntry {
transition: Transition;
transitionName: string;
frameId: number
useLollipopTransition: boolean;
}
const sdkVersion = lazy(() => parseInt(device.sdkVersion));
@@ -100,6 +101,8 @@ export function _setAndroidFragmentTransitions(
useLollipopTransition = false;
}
newEntry.useLollipopTransition = useLollipopTransition;
if (!animated) {
name = "none";
} else if (transition) {
@@ -116,6 +119,7 @@ export function _setAndroidFragmentTransitions(
_updateTransitions(currentEntry);
if (currentEntry.transitionName !== name ||
currentEntry.transition !== transition ||
!!currentEntry.useLollipopTransition !== useLollipopTransition ||
!useLollipopTransition) {
clearExitAndReenterTransitions(currentEntry, true);
currentFragmentNeedsDifferentAnimation = true;
@@ -190,11 +194,11 @@ export function _onFragmentCreateAnimator(entry: ExpandedEntry, fragment: androi
let animator: android.animation.Animator;
switch (nextAnim) {
case AnimationType.enterFakeResourceId:
animator = entry.enterAnimator;
animator = entry.enterAnimator || entry.defaultEnterAnimator /* HACK */;
break;
case AnimationType.exitFakeResourceId:
animator = entry.exitAnimator;
animator = entry.exitAnimator || entry.defaultExitAnimator /* HACK */;
break;
case AnimationType.popEnterFakeResourceId:
@@ -268,7 +272,6 @@ export function _reverseTransitions(previousEntry: ExpandedEntry, currentEntry:
} else {
previousFragment.setEnterTransition(null);
}
}
return transitionUsed;