Utkarsh Tiwari
09/05/2024, 1:20 AMrenderInOverlayDuringTransitionrenderInOverlayDuringTransition = falseDoris Liu
09/17/2024, 12:47 AM// First screen
AnimatedContent(
        modifier = modifier.sharedBounds(..), // shared bounds
        label = animationLabel,
        targetState = visible,
        transitionSpec = { transition using SizeTransform(clip = false) }
    ) { show ->
        val contentAlpha = if (show) 1f else 0f
        Box {
            Box(modifier = Modifier.alpha(contentAlpha)) {
                AyncImage(modifier = Modifier.sharedElement(...)) // shared image
            }
            if (!show) {
                placeholderContent()
            }
        }
    }AnimatedContentsharedElementmodifier = Modifier.sharedBounds(keyForBounds).sharedElement(keyForImage)Doris Liu
09/17/2024, 12:52 AMAlso, you might notice a second issue (in first video at [00:10]) and it's that the placeholder of theThis is likely due to a higher res image being requested due to the larger size for the image to fill. Our recommendation for this issue is to specify a memory cache key for the image, so that coil can use a lower res image in place before the high res image is loaded. See here for details: https://developer.android.com/develop/ui/compose/animation/shared-elements/common-use-cases(from coil) flashes for a second when I click a card for the very first time. However that doesn't happen when I re-open the same card again. It's strange.AsyncImage
Utkarsh Tiwari
10/11/2024, 10:42 PM.renderInSharedTransitionScopeOverlay(zIndexInOverlay = 1f)Utkarsh Tiwari
10/11/2024, 10:46 PMArcMode.ArcBelowDoris Liu
10/11/2024, 11:04 PMkeyframesWithSplineUtkarsh Tiwari
10/11/2024, 11:22 PM