package Ġcom . d awn . sample . pkg . feature . view Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroidx . activity . view Models Ċ import Ġandroidx . fragment . app . view Models Ċ import Ġcom . d awn . base . log . L Ċ import Ġcom . d awn . base . ui . page . base . Base Activity Ċ import Ġcom . d awn . base . utils . startActivity Ċ import Ġcom . d awn . base . view model . Empty ViewModel Ċ import Ġcom . d awn . sample . pkg . R Ċ import Ġcom . d awn . sample . pkg . databinding . Feature Sample Pkg Activity Main Binding Ċ import Ġcom . d awn . sample . pkg . feature . constant . B UNDLE _ TITLE Ċ import Ġcom . d awn . sample . pkg . feature . view model . Test ViewModel Ċ import Ġdagger . h ilt . android . Android EntryPoint Ċ Ċ /** Ċ Ġ* Ġ@ author Ġ: ĠLee Zh ao X ing Ċ Ġ* Ġ@ date ĠĠ Ġ: Ġ 2 0 2 0 / 1 0 / 2 6 Ċ Ġ* Ġ@ desc ĠĠ Ġ: Ċ Ġ* Ġ@ note ĠĠ Ġ: Ġä½¿çĶ¨ Saved State Handle åı¯ä»¥åľ¨ çĶŁåĳ½ åĳ¨æľŁ éĩį å»º çļĦæĹ¶åĢĻ ä¿ĿåŃĺ æķ°æį® ï¼Į è¯ķ éªĮ activity åĴĮ fragment ä½¿çĶ¨ ä¸įåĲĮçļĦ viewModel , åħ¶ä¸Ń fragment Ċ Ġ* Ġä½¿çĶ¨ Fragment ĠScope , æĹłæ³ķ è¾¾ åĪ° é¢Ħ æľŁ ç»ĵæŀľ ãĢĤ Ġ åıªæľī è®© activity åĴĮ fragment åħ±äº« åĲĮ ä¸ª viewModel æīį è¡Į ãĢĤ Ċ Ġ*/ Ċ @ Android EntryPoint Ċ class ĠFirst Activity Ġ: ĠBase Activity < Test ViewModel , ĠFeature Sample Pkg Activity Main Binding >() Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġis Show Ġ= Ġtrue ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġfirst Fragment : ĠFirst Fragment ĊĠĠĠ Ġprivate Ġval Ġvm Ġ: ĠTest ViewModel Ġby Ġview Models () ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġaction Start ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity < First Activity >( context ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit View () Ġ{ ĊĠĠĠĠĠĠĠ Ġfirst Fragment Ġ= ĠFirst Fragment . newInstance (" First Fragment ", - 1 ) Ġas ĠFirst Fragment ĊĠĠĠĠĠĠĠ ĠLog . d (" @@ "," first Fragment :${ first Fragment . hashCode () }") ĊĠĠĠĠĠĠĠ Ġsupport FragmentManager . beginTransaction (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( R . id . container , Ġfirst Fragment , Ġ" first ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcommit () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit StatusBar () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// éĩį åĨĻ è¯¥ æĸ¹æ³ķ ï¼Į éĿŀ çº ¯ èī² æ² ī æµ ¸ å¼ı ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit ViewModel (): ĠTest ViewModel Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġvm ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġinit Listener () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . init Listener () ĊĠĠĠĠĠĠĠ Ġbinding . tv . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Show ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv . text Ġ= Ġ" æĺ¾ç¤º " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfirst Fragment . hide Self ( R . anim . lib _ common _ no _ anim , ĠR . anim . lib _ common _ push _ bottom _ out ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv . text Ġ= Ġ" éļĲèĹı " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfirst Fragment . show Self ( R . anim . lib _ common _ push _ bottom _ in , ĠR . anim . lib _ common _ no _ anim ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Show Ġ= Ġ! is Show ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }