package Ġcom . jiang k ang . k tools . animation Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġcom . jiang k ang . k tools . R Ċ Ċ class ĠCard Flip Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġm Showing Back : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcurrent Fragment : ĠFragment ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ card _ flip ) ĊĠĠĠĠĠĠĠ Ġcurrent Fragment Ġ= ĠCard Front Fragment () ĊĠĠĠĠĠĠĠ Ġif Ġ( savedInstanceState Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupport FragmentManager . beginTransaction () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add ( R . id . container , Ġcurrent Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. commit () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġflip Card () Ġ{ ĊĠĠĠĠĠĠĠ Ġcurrent Fragment Ġ= Ġif Ġ( m Showing Back ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCard Front Fragment () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCard Back Fragment () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġm Showing Back Ġ= Ġ! m Showing Back ĊĊĠĠĠĠĠĠĠ Ġ// ĠFlip Ġto Ġthe Ġback . ĊĊĠĠĠĠĠĠĠ Ġ// ĠCreate Ġand Ġcommit Ġa Ġnew Ġfragment Ġtransaction Ġthat Ġadds Ġthe Ġfragment Ġfor ĊĠĠĠĠĠĠĠ Ġ// Ġthe Ġback Ġof Ġthe Ġcard , Ġuses Ġcustom Ġanimations , Ġand Ġis Ġpart Ġof Ġthe Ġfragment ĊĠĠĠĠĠĠĠ Ġ// Ġmanager 's Ġback Ġstack . ĊĊĠĠĠĠĠĠĠ Ġsupport FragmentManager . beginTransaction () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// è¿ĻéĩĮ æĺ¯ åħ³éĶ® API ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Custom Animations ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . anim ator . card _ flip _ right _ in , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . anim ator . card _ flip _ right _ out , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . anim ator . card _ flip _ left _ in , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . anim ator . card _ flip _ left _ out ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠReplace Ġany Ġfragments Ġcurrently Ġin Ġthe Ġcontainer Ġview Ġwith Ġa ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġfragment Ġrepresenting Ġthe Ġnext Ġpage Ġ( indic ated Ġby Ġthe ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġjust - increment ed ĠcurrentPage Ġvariable ). ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace ( R . id . container , Ġcurrent Fragment ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAdd Ġthis Ġtransaction Ġto Ġthe Ġback Ġstack , Ġallowing Ġusers Ġto Ġpress ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠBack Ġto Ġget Ġto Ġthe Ġfront Ġof Ġthe Ġcard . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. addTo Back Stack ( null ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠCommit Ġthe Ġtransaction . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. commit () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠA Ġfragment Ġrepresenting Ġthe Ġfront Ġof Ġthe Ġcard . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġclass ĠCard Front Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠĠĠĠĠ Ġ): ĠView Ġ= Ġinflater . inflate ( R . layout . layout _ card _ flip , Ġcontainer , Ġfalse ) ĊĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( activity Ġas ĠCard Flip Activity ). flip Card () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠA Ġfragment Ġrepresenting Ġthe Ġback Ġof Ġthe Ġcard . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġclass ĠCard Back Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠĠĠĠĠ Ġ): ĠView Ġ= Ġinflater . inflate ( R . layout . layout _ card _ flip _ back , Ġcontainer , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( activity Ġas ĠCard Flip Activity ). flip Card () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ Ċ } Ċ