Skip to content

Commit b673790

Browse files
chethaaseAndroid (Google) Code Review
authored andcommitted
Merge "Give disappearing children a chance to recreate DisplayLists" into lmp-dev
2 parents a4215ce + 6c0665f commit b673790

1 file changed

Lines changed: 18 additions & 10 deletions

File tree

core/java/android/view/ViewGroup.java

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)