Compose Unstyled 2.0 is out! Check the official announcement blog ->
Class

DeferredTransitionState

A TransitionState that supports a deferred phase before the automatic transition begins.

DeferredTransitionSample

@OptIn(ExperimentalDeferredTransitionApi::class)
@Composable
fun DeferredTransitionSample() {
    var targetState by remember { mutableStateOf("Initial") }
    var isDeferred by remember { mutableStateOf(false) }
    // Create a DeferredTransitionState
    val transitionState = remember { DeferredTransitionState(targetState) }
    // Use LaunchedEffect to handle defer/animateTo logic based on some external signal
    // (e.g. gesture progress, predictive back events, etc).
    LaunchedEffect(targetState, isDeferred) {
        if (isDeferred) {
            // Enter deferred phase: targetState is updated as a pendingTargetState
            // but animations don't start yet.
            transitionState.defer(targetState)
        } else {
            // Start automatic transition: pendingTargetState is cleared and targetState is updated
            // to trigger animations.
            transitionState.animateTo(targetState)
        }
    }
    val transition = rememberTransition(transitionState)
    // Create animations as usual
    val alpha by transition.animateFloat { state -> if (state == "Initial") 0f else 1f }
    Box(Modifier.graphicsLayer { this.alpha = alpha }) {
        // Content
    }
}

Last updated: