Fix for transition layout suppression
The ChangeBounds transition causes its target view parents to suppress layout for the duration of the transition. This is done to avoid artifacts caused by running layout while layout bounds are being animated between different scene values. In order to react correctly to new transition/scene information (such as running a new transition while another is already running), the transition system calls pause() on all running transitions to allow layout (among other things) to work correctly, then resume() after this is finished. This works in general, but pause/resume do not take account of child transitions that have already played and ended. ChangeBounds, uses pause/resume to restore normal layout and re-enable layout suppression. This means that when resume() is called on a ChangeBounds transition that has already ended, that transition will leave the parent in a suppressed-layout state, basically forever. This can cause artifacts like we're seeing in recent ActionBar changes where the account spinner is never repopulated because layout is never allowed to run. The fix is to note when a transition ends and noop future calls to pause/resume. Issue #10648936 Transitions don't work with new ActionBar functionality Change-Id: Id9d41c0352b2270d46cfd5ad4dba130767bbf303
Loading
Please register or sign in to comment