This shrinks the clip bounds of the disappearing content horizontally, from the full width to the width returned from [targetWidth].
HorizontalTransitionSample
@Composable
fun HorizontalTransitionSample() {
var visible by remember { mutableStateOf(true) }
AnimatedVisibility(
visible = visible,
// Set the start width to 20 (pixels), 0 by default
enter = expandHorizontally { 20 },
exit =
shrinkHorizontally(
// Overwrites the default animation with tween for this shrink animation.
animationSpec = tween(),
// Shrink towards the end (i.e. right edge for LTR, left edge for RTL). The default
// direction for the shrink is towards [Alignment.Start]
shrinkTowards = Alignment.End,
) { fullWidth ->
// Set the end width for the shrink animation to a quarter of the full width.
fullWidth / 4
},
) {
// Content that needs to appear/disappear goes here:
Box(Modifier.fillMaxWidth().requiredHeight(200.dp))
}
}