package Ġcom . zhang www . new notebook . ui . home Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . commit Ċ import Ġcom . zhang www . new notebook . R Ċ import Ġcom . zhang www . new notebook . base . Base Activity Ċ import Ġcom . zhang www . new notebook . databinding . Activity Home Binding Ċ import Ġcom . zhang www . new notebook . ui . home . home . Home Fragment Ċ import Ġcom . zhang www . new notebook . ui . home . mine . Mine Fragment Ċ import Ġcom . zhang www . new notebook . util . view binding . view Binding Ċ import Ġdagger . h ilt . android . Android EntryPoint Ċ Ċ @ Android EntryPoint Ċ class ĠHome Activity Ġ: ĠBase Activity () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġm Binding Ġby Ġview Binding ( Activity Home Binding :: inflate ) ĊĊĠĠĠ Ġprivate Ġval Ġm Home Fragment Ġ= ĠHome Fragment () ĊĊĠĠĠ Ġprivate Ġval Ġm Mine Fragment Ġ= ĠM ine Fragment () ĊĊĠĠĠ Ġprivate Ġval Ġm Fragment List Ġ= ĠlistOf ( m Home Fragment , Ġm Mine Fragment ) ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Pending Transition ( 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( m Binding . root ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit View () Ġ{ ĊĠĠĠĠĠĠĠ Ġshow Fragment ( m Home Fragment , ĠHOME _ FRAGMENT _ TAG ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit Action () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Binding . bottom NavBar . setOn Navigation ItemSelected Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . navigation _ home Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Fragment ( m Home Fragment , ĠHOME _ FRAGMENT _ TAG ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ setOn Navigation ItemSelected Listener Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . navigation _ mine Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Fragment ( m Mine Fragment , ĠM INE _ FRAGMENT _ TAG ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ setOn Navigation ItemSelected Listener Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Fragment ( fragment : ĠFragment , Ġtag : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsupport FragmentManager . commit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Fragment List . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . isVisible ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Fragment Added ( fragment , Ġtag )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow ( fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( R . id . fl _ container , Ġfragment , Ġtag ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġis Fragment Added ( fragment : ĠFragment , Ġtag : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfragment . is Added ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|| Ġsupport FragmentManager . find Fragment By Tag ( tag ) Ġ!= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|| Ġsupport FragmentManager . fragments . contains ( fragment ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠHOME _ FRAGMENT _ TAG Ġ= Ġ" Home Fragment TAG " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠM INE _ FRAGMENT _ TAG Ġ= Ġ" Mine Fragment TAG " ĊĠĠĠ Ġ} Ċ }