package Ġcom . d ht . interest . home Ċ Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . annotation . NonNull Ċ import Ġandroidx . annotation . Nullable Ċ import Ġandroidx . annotation . Requires Api Ċ import Ġandroidx . databinding . Data Binding Util Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . lifecycle . ViewModel Providers Ċ import Ġcom . d ht . base lib . base . Base Fragment Ċ import Ġcom . d ht . base lib . base . Base Fragment Page Adapter Ċ import Ġcom . d ht . interest . R Ċ import Ġcom . d ht . interest . common . callback . On Page Ch anger Callback Ċ import Ġcom . d ht . interest . common . callback . Tab Layout Callback Ċ import Ġcom . d ht . interest . databinding . Fragment Home Binding Ċ import Ġcom . d ht . interest . invest ment . Invest Fragment Ċ import Ġcom . d ht . interest . music . Music Fragment Ċ import Ġcom . d ht . interest . news . News Fragment Ċ import Ġcom . google . android . material . tabs . Tab Layout Ċ import Ġkotlinx . android . synt hetic . main . fragment _ home .* Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* Ġ@ author ĠAdministrator Ċ Ġ*/ Ċ class ĠHome Fragment Ġ: ĠBase Fragment () Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm ViewModel : ĠHome ViewModel ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Binding : ĠFragment Home Binding ĊĠĠĠ Ġprivate Ġval Ġtitles Ġ= ĠarrayOf (" éŁ³ ä¹Ĳ ", Ġ" æĬķ èµĦ ", Ġ" æĸ° éĹ» ", Ġ" å°ı è¯´ ", Ġ" æĪĳçļĦ ") ĊĠĠĠ Ġprivate Ġval Ġimages Ġ= Ġint ArrayOf ( ĊĠĠĠĠĠĠĠ ĠR . drawable . tab layout _ music _ bg , ĠR . drawable . tab layout _ news _ bg , ĠR . drawable . tab layout _ news _ bg , ĊĠĠĠĠĠĠĠ ĠR . drawable . tab layout _ no vel _ bg , ĠR . drawable . tab layout _ setting _ bg ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġ@ NonNull Ġinflater : ĠLayoutInflater , Ġ@ Nullable Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ Ġ@ Nullable ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġm Binding Ġ= ĠData Binding Util . inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinflater , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . layout . fragment _ home , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontainer , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġreturn Ġm Binding . root ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Requires Api ( api Ġ= ĠBuild . VERSION _ CODES . J EL LY _ BE AN _ MR 2 ) ĊĠĠĠ Ġoverride Ġfun Ġon Activity Created (@ Nullable ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Created ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġm ViewModel Ġ= ĠViewModel Providers . of ( this ). get ( Home ViewModel :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġm Binding . home ViewModel Ġ= Ġm ViewModel ĊĠĠĠĠĠĠĠ Ġinit Views ( m Binding . root ) ĊĠĠĠĠĠĠĠ Ġbind Views () ĊĠĠĠ Ġ} ĊĊĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy View () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy View () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Requires Api ( api Ġ= ĠBuild . VERSION _ CODES . J EL LY _ BE AN _ MR 2 ) ĊĠĠĠ Ġoverride Ġfun Ġbind Views () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . bind Views () ĊĠĠĠĠĠĠĠ Ġval Ġm Fragment List : ĠMutable List < Fragment > Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġval Ġmusic Fragment : ĠMusic Fragment Ġ= ĠMusic Fragment . newInstance () ĊĠĠĠĠĠĠĠ Ġmusic Fragment . arguments Ġ= Ġarguments ĊĠĠĠĠĠĠĠ Ġm Fragment List . add ( music Fragment ) ĊĠĠĠĠĠĠĠ Ġm Fragment List . add ( Invest Fragment . newInstance ()) ĊĠĠĠĠĠĠĠ Ġm Fragment List . add ( News Fragment . newInstance ()) ĊĠĠĠĠĠĠĠ Ġm Fragment List . add ( News Fragment . newInstance ()) ĊĠĠĠĠĠĠĠ Ġm Fragment List . add ( News Fragment . newInstance ()) ĊĠĠĠĠĠĠĠ Ġset Custom Tab Layout () ĊĠĠĠĠĠĠĠ Ġbase ViewPager . off screen Page Limit Ġ= Ġ 2 ĊĠĠĠĠĠĠĠ Ġbase ViewPager . adapter Ġ= ĠBase Fragment Page Adapter ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchild FragmentManager , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Fragment List , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitles ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġtab Layout . add On Tab Selected Listener ( object Ġ: ĠTab Layout Callback () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Tab Selected ( tab : ĠTab Layout . Tab ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Tab Selected ( tab ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTAG , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" on Tab Selected : Ġtab . position Ġ= Ġ" Ġ+ Ġtab . position ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbase ViewPager . currentItem Ġ= Ġtab . position ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġbase ViewPager . add On Page ChangeListener ( object Ġ: ĠOn Page Ch anger Callback () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Requires Api ( api Ġ= ĠBuild . VERSION _ CODES . KIT K AT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Page Selected ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Page Selected ( position ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTAG , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" on Page Selected : Ġposition Ġ= Ġ$ position " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtab Layout . get Tab At ( position )?. select () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ èĩªå®ļä¹ī å¸ĥå±Ģ Tab Layout ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġset Custom Tab Layout () Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġtitles . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtab : ĠTab Layout . Tab Ġ= Ġtab Layout . new Tab () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtab . custom View Ġ= Ġget Tab View ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtab Layout . add Tab ( tab ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ å¯¹åºĶ tab Ġview ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġindex Ġä¸ĭ æłĩ ĊĠĠĠĠ Ġ* Ġ@ return ĠView ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġget Tab View ( index : ĠInt ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate ( R . layout . tab layout _ home , Ġm Binding . root Ġas ĠViewGroup , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġval ĠimageView Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . findViewById < ImageView >( R . id . tab _ image ) ĊĠĠĠĠĠĠĠ ĠimageView . setImage Resource ( images [ index ]) ĊĠĠĠĠĠĠĠ Ġval ĠtextView Ġ= Ġview . findViewById < TextView >( R . id . tab _ content ) ĊĠĠĠĠĠĠĠ ĠtextView . text Ġ= Ġtitles [ index ] ĊĠĠĠĠĠĠĠ Ġreturn Ġview ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠTAG Ġ= Ġ" Home Fragment " ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance (): ĠHome Fragment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠHome Fragment () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }