@@ -25,10 +25,10 @@ import { createViewFromEntry } from "../builder";
2525export * from "./frame-common" ;
2626
2727interface AnimatorState {
28- enterAnimator : android . animation . Animator ;
29- exitAnimator : android . animation . Animator ;
30- popEnterAnimator : android . animation . Animator ;
31- popExitAnimator : android . animation . Animator ;
28+ enterAnimator : any ;
29+ exitAnimator : any ;
30+ popEnterAnimator : any ;
31+ popExitAnimator : any ;
3232 transitionName : string ;
3333}
3434
@@ -306,10 +306,8 @@ export class Frame extends FrameBase {
306306 // restore cached animation settings if we just completed simulated first navigation (no animation)
307307 if ( this . _cachedAnimatorState ) {
308308 restoreAnimatorState ( this . _currentEntry , this . _cachedAnimatorState ) ;
309-
310309 this . _cachedAnimatorState = null ;
311310 }
312-
313311 }
314312
315313 public onBackPressed ( ) : boolean {
@@ -503,13 +501,26 @@ export class Frame extends FrameBase {
503501 }
504502}
505503
504+ function cloneExpandedAnimator ( expandedAnimator : any ) {
505+ if ( ! expandedAnimator ) {
506+ return null ;
507+ }
508+
509+ const clone = expandedAnimator . clone ( ) ;
510+ clone . entry = expandedAnimator . entry ;
511+ clone . transitionType = expandedAnimator . transitionType ;
512+
513+ return clone ;
514+ }
515+
506516function getAnimatorState ( entry : BackstackEntry ) : AnimatorState {
507517 const expandedEntry = < any > entry ;
508518 const animatorState = < AnimatorState > { } ;
509- animatorState . enterAnimator = expandedEntry . enterAnimator ;
510- animatorState . exitAnimator = expandedEntry . exitAnimator ;
511- animatorState . popEnterAnimator = expandedEntry . popEnterAnimator ;
512- animatorState . popExitAnimator = expandedEntry . popExitAnimator ;
519+
520+ animatorState . enterAnimator = cloneExpandedAnimator ( expandedEntry . enterAnimator ) ;
521+ animatorState . exitAnimator = cloneExpandedAnimator ( expandedEntry . exitAnimator ) ;
522+ animatorState . popEnterAnimator = cloneExpandedAnimator ( expandedEntry . popEnterAnimator ) ;
523+ animatorState . popExitAnimator = cloneExpandedAnimator ( expandedEntry . popExitAnimator ) ;
513524 animatorState . transitionName = expandedEntry . transitionName ;
514525
515526 return animatorState ;
0 commit comments