@@ -3265,21 +3265,29 @@ protected void dispatchGetDisplayList() {
32653265 final View child = children [i ];
32663266 if (((child .mViewFlags & VISIBILITY_MASK ) == VISIBLE || child .getAnimation () != null ) &&
32673267 child .hasStaticLayer ()) {
3268- child .mRecreateDisplayList = (child .mPrivateFlags & PFLAG_INVALIDATED )
3269- == PFLAG_INVALIDATED ;
3270- child .mPrivateFlags &= ~PFLAG_INVALIDATED ;
3271- child .getDisplayList ();
3272- child .mRecreateDisplayList = false ;
3268+ recreateChildDisplayList (child );
32733269 }
32743270 }
32753271 if (mOverlay != null ) {
32763272 View overlayView = mOverlay .getOverlayView ();
3277- overlayView .mRecreateDisplayList = (overlayView .mPrivateFlags & PFLAG_INVALIDATED )
3278- == PFLAG_INVALIDATED ;
3279- overlayView .mPrivateFlags &= ~PFLAG_INVALIDATED ;
3280- overlayView .getDisplayList ();
3281- overlayView .mRecreateDisplayList = false ;
3273+ recreateChildDisplayList (overlayView );
32823274 }
3275+ if (mDisappearingChildren != null ) {
3276+ final ArrayList <View > disappearingChildren = mDisappearingChildren ;
3277+ final int disappearingCount = disappearingChildren .size ();
3278+ for (int i = 0 ; i < disappearingCount ; ++i ) {
3279+ final View child = disappearingChildren .get (i );
3280+ recreateChildDisplayList (child );
3281+ }
3282+ }
3283+ }
3284+
3285+ private void recreateChildDisplayList (View child ) {
3286+ child .mRecreateDisplayList = (child .mPrivateFlags & PFLAG_INVALIDATED )
3287+ == PFLAG_INVALIDATED ;
3288+ child .mPrivateFlags &= ~PFLAG_INVALIDATED ;
3289+ child .getDisplayList ();
3290+ child .mRecreateDisplayList = false ;
32833291 }
32843292
32853293 /**
0 commit comments