Fix animation of notification handle bar when panel changes height
The notification panel uses LayoutTransition to animate changes to the list of notifications. This works for the items themselves as items are added or removed; the new/old items animate in/out and the existing items animate to make or remove space. But the handle at the bottom of the list (the gray translucent line) does not play well with these changes. For example, when an item is swiped away the handle snaps into its new location before the rest of the items have finished animating. The problem comes from a constraint of LayoutTransition; it handles changes to the container it operates on, and to the parent hierarchy all the way up to the root. However, it cannot animate changes to siblings of the parents. So when the list resizes due to item changes, the handle (which is in a sibling of the list) does not animate this change, but just reacts instantly. The fix is to draw the handle not as a view itself, but rather as part of the parent container of the list. So as the list animates a resize, the container will also animate, and any graphics in the container will animate along with it. No matter what size the container of the list is, the line will be drawn at the bottom of it. Issue #7024902 Notification panel animation incorrect when swiping notification out Change-Id: Ifc412cb6bcdc6ead35993b0320364a2a95a16e11
Loading
Please register or sign in to comment