You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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:
startElement from previous screen is gone
endElement calls onElementRegistered and hides itself (by using alpha = 0)
transition is set to SharedElementTransition.WaitingForEndElementPosition and invalidateTransitionsOverlay() is called.
SharedElementTransitionsOverlay reads that transition and draws SharedElementTransitionPlaceholder of startElement for a brief moment until endElement will be positioned and we can launch the real transition.
endElement calls onElementPositioned.
transition is set to SharedElementTransition.InProgress and invalidateTransitionsOverlay() is called.
SharedElementTransitionsOverlay reads and draws the real transition from startElement to endElement
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:
startElement from previous screen is gone
endElement calls onElementRegistered and hides itself (by using alpha = 0)
transition is set to SharedElementTransition.WaitingForEndElementPosition and invalidateTransitionsOverlay() is called.
DIFFERENT: NOT HAPPENING
DIFFERENT: endElement calls onElementPositioned in the same pass as 2 and 3. SharedElementTransitionsOverlay had no chance to refresh, so we have missed frame.
transition is set to SharedElementTransition.InProgress and invalidateTransitionsOverlay() is called.
SharedElementTransitionsOverlay reads and draws the real transition from startElement to endElement
The text was updated successfully, but these errors were encountered:
It's not that visible on the gif, you can only see it when going back from Irene.
When going from
UsersListScreen
toUserDetailsScreen
everything works fine. The sequence is as follows:startElement
from previous screen is goneendElement
callsonElementRegistered
and hides itself (by usingalpha = 0
)transition
is set toSharedElementTransition.WaitingForEndElementPosition
andinvalidateTransitionsOverlay()
is called.SharedElementTransitionsOverlay
reads that transition and drawsSharedElementTransitionPlaceholder
ofstartElement
for a brief moment untilendElement
will be positioned and we can launch the real transition.endElement
callsonElementPositioned
.transition
is set toSharedElementTransition.InProgress
andinvalidateTransitionsOverlay()
is called.SharedElementTransitionsOverlay
reads and draws the real transition fromstartElement
toendElement
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 ofstartElement
drawn bySharedElementTransitionsOverlay
.When going from
UserDetailsScreen
toUsersListScreen
there is one difference though. It looks likeAdapterList
(that is used onUsersListScreen
) 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:startElement
from previous screen is goneendElement
callsonElementRegistered
and hides itself (by usingalpha = 0
)transition
is set toSharedElementTransition.WaitingForEndElementPosition
andinvalidateTransitionsOverlay()
is called.endElement
callsonElementPositioned
in the same pass as 2 and 3.SharedElementTransitionsOverlay
had no chance to refresh, so we have missed frame.transition
is set toSharedElementTransition.InProgress
andinvalidateTransitionsOverlay()
is called.SharedElementTransitionsOverlay
reads and draws the real transition fromstartElement
toendElement
The text was updated successfully, but these errors were encountered: