package Ġcom . the apache 6 4 . compose animation playground . ui . screen . animation Ċ Ċ import Ġandroidx . compose . animation . Animated Visibility Ċ import Ġandroidx . compose . animation . core .* Ċ import Ġandroidx . compose . animation . fadeIn Ċ import Ġandroidx . compose . animation . fadeOut Ċ import Ġandroidx . compose . foundation . background Ċ import Ġandroidx . compose . foundation . layout .* Ċ import Ġandroidx . compose . material . Button Ċ import Ġandroidx . compose . material . Material Theme Ċ import Ġandroidx . compose . material . Text Ċ import Ġandroidx . compose . runtime .* Ċ import Ġandroidx . compose . ui . Alignment Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . graphics . Color Ċ import Ġandroidx . compose . ui . tool ing . preview . Preview Ċ import Ġandroidx . compose . ui . unit . dp Ċ import Ġandroidx . compose . ui . unit . sp Ċ Ċ private Ġenum Ġclass ĠColor Box Ġ{ ĠRed , ĠGreen , ĠBlue Ġ} Ċ Ċ private Ġconst Ġval ĠAN IM _ DURATION Ġ= Ġ 3 0 0 0 Ċ Ċ @ Opt In ( Experimental Transition Api :: class ) Ċ @ Preview Ċ @ Composable Ċ fun ĠChild Transition Demo () Ġ{ ĊĠĠĠ Ġvar Ġcolor Box State Ġby Ġremember Ġ{ Ġmutable State Of ( Color Box . Red ) Ġ} ĊĠĠĠ Ġval Ġtransition Ġ= Ġupdate Transition ( color Box State , Ġlabel Ġ= Ġ" My ĠAnimation ") ĊĠĠĠ ĠBox ( ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill MaxSize () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. background ( Material Theme . colors . background ), ĊĠĠĠĠĠĠĠ Ġcontent Alignment Ġ= ĠAlignment . Center , ĊĠĠĠ Ġ) Ġ{ ĊĊĊĠĠĠĠĠĠĠ Ġval Ġred Box Transition Ġ= Ġtransition . create Child Transition Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit Ġ== ĠColor Box . Red ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġgreen Box Transition Ġ= Ġtransition . create Child Transition Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit Ġ== ĠColor Box . Green ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġblue Box Transition Ġ= Ġtransition . create Child Transition Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit Ġ== ĠColor Box . Blue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠRed Box ( red Box Transition ) ĊĠĠĠĠĠĠĠ ĠGreen Box ( green Box Transition ) ĊĠĠĠĠĠĠĠ ĠBlue Box ( blue Box Transition ) ĊĊĠĠĠĠĠĠĠ ĠColumn ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . align ( Alignment . Bottom Center ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhorizontal Alignment Ġ= ĠAlignment . Center H orizontally ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠLabel ( text Ġ= Ġ" box State : Ġ$ color Box State ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLabel ( text Ġ= Ġ" red Box Transition : Ġ${ red Box Transition . isRunning }") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLabel ( text Ġ= Ġ" green Box Transition : Ġ${ green Box Transition . isRunning }") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLabel ( text Ġ= Ġ" blue Box Transition : Ġ${ blue Box Transition . isRunning }") ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠButton ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Box State Ġ= Ġwhen Ġ( color Box State ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠColor Box . Red Ġ-> ĠColor Box . Green ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠColor Box . Green Ġ-> ĠColor Box . Blue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠColor Box . Blue Ġ-> ĠColor Box . Red ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . padding ( 1 0 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText ( text Ġ= Ġ" TO GGLE ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ fun ĠLabel ( text : ĠString ) Ġ{ ĊĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠ Ġtext Ġ= Ġtext , ĊĠĠĠĠĠĠĠ ĠfontSize Ġ= Ġ 3 0 . sp ĊĠĠĠ Ġ) Ċ } Ċ Ċ @ Composable Ċ fun ĠRed Box ( transition : ĠTransition < Boolean >) Ġ{ ĊĠĠĠ Ġtransition . Animated Visibility ( ĊĠĠĠĠĠĠĠ Ġvisible Ġ= Ġ{ Ġit Ġ}, ĊĠĠĠĠĠĠĠ Ġenter Ġ= ĠfadeIn ( animation Spec Ġ= Ġt ween ( ANIM _ DURATION )), ĊĠĠĠĠĠĠĠ Ġexit Ġ= Ġfade Out ( animation Spec Ġ= Ġt ween ( ANIM _ DURATION )) ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠBox ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. size ( 1 0 0 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. background ( Color . Red ) ĊĠĠĠĠĠĠĠ Ġ) Ġ{} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ fun ĠGreen Box ( ĊĠĠĠ Ġtransition : ĠTransition < Boolean > Ċ ) Ġ{ ĊĠĠĠ Ġtransition . Animated Visibility ( ĊĠĠĠĠĠĠĠ Ġvisible Ġ= Ġ{ Ġit Ġ}, ĊĠĠĠĠĠĠĠ Ġenter Ġ= ĠfadeIn ( animation Spec Ġ= Ġt ween ( ANIM _ DURATION )), ĊĠĠĠĠĠĠĠ Ġexit Ġ= Ġfade Out ( animation Spec Ġ= Ġt ween ( ANIM _ DURATION )) ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠBox ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. size ( 2 0 0 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. background ( Color . Green ) ĊĠĠĠĠĠĠĠ Ġ) Ġ{} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ fun ĠBlue Box ( transition : ĠTransition < Boolean >) Ġ{ ĊĠĠĠ Ġtransition . Animated Visibility ( ĊĠĠĠĠĠĠĠ Ġvisible Ġ= Ġ{ Ġit Ġ}, ĊĠĠĠĠĠĠĠ Ġenter Ġ= ĠfadeIn ( animation Spec Ġ= Ġt ween ( ANIM _ DURATION )), ĊĠĠĠĠĠĠĠ Ġexit Ġ= Ġfade Out ( animation Spec Ġ= Ġt ween ( ANIM _ DURATION )) ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠBox ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. size ( 2 5 0 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. background ( Color . Blue ) ĊĠĠĠĠĠĠĠ Ġ) Ġ{} ĊĠĠĠ Ġ} Ċ }