Missed "frame" when going back to UsersListScreen
It's not that visible on the gif, you can only see it when going back from Irene.
When going from UsersListScreen to UserDetailsScreen everything works fine. The sequence is as follows:
-
startElementfrom previous screen is gone -
endElementcallsonElementRegisteredand hides itself (by usingalpha = 0) -
transitionis set toSharedElementTransition.WaitingForEndElementPositionandinvalidateTransitionsOverlay()is called. -
SharedElementTransitionsOverlayreads that transition and drawsSharedElementTransitionPlaceholderofstartElementfor a brief moment untilendElementwill be positioned and we can launch the real transition. -
endElementcallsonElementPositioned. -
transitionis set toSharedElementTransition.InProgressandinvalidateTransitionsOverlay()is called. -
SharedElementTransitionsOverlayreads and draws the real transition fromstartElementtoendElement
Steps 2, 3 and 4 are done in the same pass (frame?). endElement hides itself, but at the same time we already have a placeholder of startElement drawn by SharedElementTransitionsOverlay.
When going from UserDetailsScreen to UsersListScreen there is one difference though. It looks like AdapterList (that is used on UsersListScreen) never disposes its list items, even when it's gone (#1, https://issuetracker.google.com/issues/150174792). I believe it causes it to be positioned "instantly"(?). The sequence is as follows:
-
startElementfrom previous screen is gone -
endElementcallsonElementRegisteredand hides itself (by usingalpha = 0) -
transitionis set toSharedElementTransition.WaitingForEndElementPositionandinvalidateTransitionsOverlay()is called. - DIFFERENT: NOT HAPPENING
-
DIFFERENT:
endElementcallsonElementPositionedin the same pass as 2 and 3.SharedElementTransitionsOverlayhad no chance to refresh, so we have missed frame. -
transitionis set toSharedElementTransition.InProgressandinvalidateTransitionsOverlay()is called. -
SharedElementTransitionsOverlayreads and draws the real transition fromstartElementtoendElement
Hey @MaciejCiemiega, is this still an issue now that the linked issue is fixed?