package Ġco . zs mb . rain bow cake . demo . ui . example Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġco . zs mb . rain bow cake . base . Rain bow Cake Fragment Ċ import Ġco . zs mb . rain bow cake . d agger . get ViewModel From Factory Ċ import Ġco . zs mb . rain bow cake . demo . R Ċ import Ġco . zs mb . rain bow cake . demo . ui . foo . Foo Fragment Ċ import Ġco . zs mb . rain bow cake . demo . ui . k oin . K oin Fragment Ċ import Ġco . zs mb . rain bow cake . demo . ui . shared v mp ager . Shared V MP ager Fragment Ċ import Ġco . zs mb . rain bow cake . navigation . navigator Ċ import Ġkotlinx . android . synt hetic . main . fragment _ example .* Ċ Ċ class ĠExample Fragment Ġ: ĠR ain bow Cake Fragment < Example ViewState , ĠExample ViewModel >() Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġprovide ViewModel () Ġ= Ġget ViewModel From Factory () ĊĠĠĠ Ġoverride Ġfun Ġget View Resource () Ġ= ĠR . layout . fragment _ example ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġshared VM Demo Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnavigator ?. add ( Shared V MP ager Fragment ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcustom Animation Demo Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnavigator ?. add ( Foo Fragment (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenter Anim Ġ= ĠR . anim . slide _ in _ right , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexit Anim Ġ= ĠR . anim . slide _ out _ left , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpop Enter Anim Ġ= ĠR . anim . slide _ in _ left , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpop Exit Anim Ġ= ĠR . anim . slide _ out _ right ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġk oin Example Demo Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnavigator ?. add ( K oin Fragment ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġrender ( view State : ĠExample ViewState ) Ġ{ ĊĊĠĠĠ Ġ} Ċ Ċ } Ċ