diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java index 0aa51c99c24b9..7410069b09fac 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java @@ -3293,6 +3293,16 @@ public class NotificationStackScrollLayout extends ViewGroup if (!childWasSwipedOut) { Rect clipBounds = child.getClipBounds(); childWasSwipedOut = clipBounds != null && clipBounds.height() == 0; + + if (childWasSwipedOut && child instanceof ExpandableView) { + // Clean up any potential transient views if the child has already been swiped + // out, as we won't be animating it further (due to its height already being + // clipped to 0. + ViewGroup transientContainer = ((ExpandableView) child).getTransientContainer(); + if (transientContainer != null) { + transientContainer.removeTransientView(child); + } + } } int animationType = childWasSwipedOut ? AnimationEvent.ANIMATION_TYPE_REMOVE_SWIPED_OUT