@Composable
fun SizeTransformComposable() {
val navController = rememberNavController()
Box {
NavHost(navController, startDestination = Collapsed) {
composable<Collapsed>(
enterTransition = { EnterTransition.None },
exitTransition = { ExitTransition.None },
sizeTransform = {
SizeTransform { initialSize, targetSize ->
keyframes {
durationMillis = 500
IntSize(
initialSize.width,
(initialSize.height + targetSize.height) / 2,
) at 150
}
}
},
) {
CollapsedScreen { navController.navigate(Expanded) }
}
composable<Expanded>(
enterTransition = { EnterTransition.None },
exitTransition = { ExitTransition.None },
sizeTransform = {
SizeTransform { initialSize, targetSize ->
keyframes {
durationMillis = 500
IntSize(targetSize.width, initialSize.height + 400) at 150
}
}
},
) {
ExpandedScreen { navController.popBackStack() }
}
}
}
}