package Ġorg . ruby gar age . share de lement transitions . pager Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroidx . core . app . Shared Element Callback Ċ import Ġandroidx . core . view . do On Pre Draw Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . navigation . fragment . nav Args Ċ import Ġandroidx . transition . Transition Inflater Ċ import Ġandroidx . view pager 2 . widget . ViewPager 2 Ċ import Ġorg . ruby gar age . share de lement transitions . MainActivity Ċ import Ġorg . ruby gar age . share de lement transitions . R Ċ import Ġorg . ruby gar age . share de lement transitions . databinding . Fragment Second Pager Example Binding Ċ Ċ class ĠSecond Pager Example Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġargs : ĠSecond Pager Example Fragment Args Ġby Ġnav Args () ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠFragment Second Pager Example Binding ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġshared Element Enter Transition Ġ= ĠTransition Inflater . from ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate Transition ( R . transition . image _ shared _ element _ transition ) ĊĠĠĠĠĠĠĠ Ġprepare Transitions () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠFragment Second Pager Example Binding . inflate ( in flater , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġval Ġadapter Ġ= ĠGallery Adapter ( object Ġ: ĠGallery Adapter . On Image Ready Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Image Ready ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( position Ġ== Ġargs . position ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Post p oned Enter Transition () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġadapter . target Position Ġ= Ġargs . position ĊĠĠĠĠĠĠĠ Ġadapter . submit List ( args . images . toList ()) ĊĠĠĠĠĠĠĠ Ġbinding . pager . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠ Ġpost p one Enter Transition () ĊĠĠĠĠĠĠĠ Ġbinding . pager . do On Pre Draw Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . pager . setCurrent Item ( args . position , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . pager . register On Page Change Callback ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠView Pager 2 . On Page Change Callback () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Page Selected ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( activity Ġas ? ĠMainActivity )?. gallery Position Data Ġ= Ġposition ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġprepare Transitions () Ġ{ ĊĠĠĠĠĠĠĠ Ġset Enter Shared Element Callback ( object Ġ: ĠShared Element Callback () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Map Shared Elements ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnames : ĠMutable List < String >, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshared Elements : ĠMutable Map < String , ĠView > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġposition Ġ= Ġ( activity Ġas ? ĠMainActivity )?. gallery Position Data Ġ?: Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . pager . find View With Tag < ViewGroup >( position ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . findViewById < ImageView >( R . id . image )?. let Ġ{ Ġshared Elements [ names [ 0 ]] Ġ= Ġit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ }