🌈 Create new beautiful Compose Gradients with our new wesite ->
Composable Function

DeferredAnimatedContent

AnimatedContent is a container that automatically animates its content when Transition.targetState changes.

DeferredAnimatedContentSample

@OptIn(ExperimentalDeferredTransitionApi::class)
@Sampled
@Composable
fun DeferredAnimatedContentSample() {
    // In a real app, these states would be driven by a gesture handler like PredictiveBackHandler
    val targetScreen by remember { mutableIntStateOf(0) }
    val isBackGestureInProgress by remember { mutableStateOf(false) }
    val swipeOffset by remember { mutableStateOf(IntOffset.Zero) }

    val transitionState = remember { DeferredTransitionState(targetScreen) }
    val transition = rememberDeferredTransition(transitionState)
    LaunchedEffect(isBackGestureInProgress, targetScreen) {
        if (isBackGestureInProgress) {
            transitionState.defer(targetScreen)
        } else {
            transitionState.animateTo(targetScreen)
        }
    }

    transition.DeferredAnimatedContent(
        transitionSpec = { slideInHorizontally { it } togetherWith slideOutHorizontally { -it } },
        mutableTransformSpec = {
            MutableContentTransform {
                if (isBackGestureInProgress && targetScreen < transitionState.targetState) {
                    // Shift the entering and exiting screens based on swipe offset
                    targetContentTransform { offset = swipeOffset }
                    initialContentTransform {
                        offset = swipeOffset.copy(swipeOffset.x / 2, swipeOffset.y / 2)
                    }
                }
            }
        },
    ) { screen ->
        Box(Modifier.size(200.dp).background(if (screen % 2 == 0) Color.Blue else Color.Green)) {
            Text("Screen $screen")
        }
    }
}

TransitionExtensionAnimatedContentSample

@Sampled
@Composable
fun TransitionExtensionAnimatedContentSample() {

Content updated: