package Ġcom . example . const ar int lay ot animation Ċ Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . transition . Change Bounds Ċ import Ġandroid . transition . Transition Manager Ċ import Ġandroid . view . animation . Ant icip ate Over shoot Interpolator Ċ import Ġandroid . widget . ImageView Ċ import Ġandroidx . constraint layout . widget . Constraint Set Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġshow Ġ= Ġfalse ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĊĠĠĠĠĠĠĠ Ġvar ĠimageView : ĠImageView Ġ= ĠfindViewById ( R . id . image _ view _ main ) ĊĊĠĠĠĠĠĠĠ ĠimageView . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( show ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Components () Ġ// Ġif Ġthe Ġanimation Ġis Ġshown , Ġwe Ġhide Ġback Ġthe Ġviews ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Components () Ġ// Ġif Ġthe Ġanimation Ġis ĠNOT Ġshown , Ġwe Ġanimate Ġthe Ġviews ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġshow Components (){ ĊĠĠĠĠĠĠĠ Ġshow Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠ Ġval Ġconstraint Set Ġ= ĠConstraint Set () ĊĠĠĠĠĠĠĠ Ġconstraint Set . clone ( this , ĠR . layout . actic ity _ main _ details ) ĊĊĠĠĠĠĠĠĠ Ġval Ġtransition Ġ= ĠChange Bounds () ĊĠĠĠĠĠĠĠ Ġtransition . interpol ator Ġ= ĠAnt icip ate Over shoot Interpolator ( 1 . 0 f ) ĊĠĠĠĠĠĠĠ Ġtransition . duration Ġ= Ġ 1 2 0 0 ĊĊĠĠĠĠĠĠĠ ĠTransition Manager . begin Delayed Transition ( const ar int _ layout _ root , Ġtransition ) ĊĠĠĠĠĠĠĠ Ġconstraint Set . apply To ( const ar int _ layout _ root ) Ġ// here Ġconstraint Ġis Ġthe Ġname Ġof Ġview Ġto Ġwhich Ġwe Ġare Ġapplying Ġthe Ġconstraint Set ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhide Components (){ ĊĠĠĠĠĠĠĠ Ġshow Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġval Ġconstraint Set Ġ= ĠConstraint Set () ĊĠĠĠĠĠĠĠ Ġconstraint Set . clone ( this , ĠR . layout . activity _ main ) ĊĊĠĠĠĠĠĠĠ Ġval Ġtransition Ġ= ĠChange Bounds () ĊĠĠĠĠĠĠĠ Ġtransition . interpol ator Ġ= ĠAnt icip ate Over shoot Interpolator ( 1 . 0 f ) ĊĠĠĠĠĠĠĠ Ġtransition . duration Ġ= Ġ 1 2 0 0 ĊĊĠĠĠĠĠĠĠ ĠTransition Manager . begin Delayed Transition ( const ar int _ layout _ root , Ġtransition ) ĊĠĠĠĠĠĠĠ Ġconstraint Set . apply To ( const ar int _ layout _ root ) Ġ Ġ// here Ġconstraint Ġis Ġthe Ġname Ġof Ġview Ġto Ġwhich Ġwe Ġare Ġapplying Ġthe Ġconstraint Set ĊĠĠĠ Ġ} Ċ Ċ } ĊĊ