package Ġgithub . com . vik rame zh il . d roid view utils . activity Ċ Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . appcompat . app . ActionBar Drawer Toggle Ċ import Ġandroidx . appcompat . widget . Toolbar Ċ import Ġandroidx . core . view . Gravity Compat Ċ import Ġandroidx . drawer layout . widget . Drawer Layout Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . Fragment Transaction Ċ import Ġcom . google . android . material . navigation . Navigation View Ċ import Ġgithub . com . vik rame zh il . d roid view utils . R Ċ import Ġgithub . com . vik rame zh il . d roid view utils . fragment .* Ċ import Ġkotlinx . android . synt hetic . main . app _ bar _ dv u .* Ċ Ċ /** Ċ Ġ* ĠD roid ĠView ĠUtils ĠExample ĠActivity Ċ Ġ* Ġ@ author Ġv ik rame zh il Ċ Ġ*/ Ċ Ċ data Ġclass ĠD vu Fragment Model ( var Ġtag : ĠInt , Ġvar Ġinstance : ĠFragment ) Ċ Ċ class ĠD vu Example Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtoolbar : ĠToolbar ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġdrawer Layout : ĠDraw er Layout ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġnav View : ĠNavigation View ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġfragments : ĠArray < D vu Fragment Model > ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ dv u ) ĊĊĠĠĠĠĠĠĠ Ġfragments Ġ= ĠarrayOf ( D vu Fragment Model ( R . id . nav _ item _ dv u _ sv , ĠFragment Search View . newInstance ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠD vu Fragment Model ( R . id . nav _ item _ dv u _ wv , ĠFragment Wheel View . newInstance ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠD vu Fragment Model ( R . id . nav _ item _ dv u _ fv , ĠFragment Flip per View . newInstance ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠD vu Fragment Model ( R . id . nav _ item _ dv u _ sb _ cv , ĠFragment Seek Bar Circle View . newInstance ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠD vu Fragment Model ( R . id . nav _ item _ dv u _ iv , ĠFragment Icons View . newInstance ())) ĊĊĠĠĠĠĠĠĠ Ġtoolbar Ġ= ĠfindViewById ( R . id . dv u _ toolbar ) ĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( toolbar ) ĊĊĠĠĠĠĠĠĠ Ġdrawer Layout Ġ= ĠfindViewById ( R . id . dv u _ drawer _ layout ) ĊĠĠĠĠĠĠĠ Ġnav View Ġ= ĠfindViewById ( R . id . dv u _ nav _ view ) ĊĊĠĠĠĠĠĠĠ Ġval Ġtoggle Ġ= ĠAction Bar Drawer Toggle ( this , Ġdrawer Layout , Ġtoolbar , Ġ 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġdrawer Layout . add Drawer Listener ( toggle ) ĊĠĠĠĠĠĠĠ Ġtoggle . sync State () ĊĊĠĠĠĠĠĠĠ Ġnav View . set Navigation ItemSelected Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠStarting Ġthe Ġfragment Ġtransaction Ġfor Ġthe Ġselected Ġid ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart Fragment Transaction ( it . itemId , Ġit . title . toString ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠClosing Ġthe Ġdrawer Ġlayout ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdrawer Layout . close Drawer ( Gravity Compat . START ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠSt aring Ġthe Ġinitial Ġfragment Ġtransaction ĊĠĠĠĠĠĠĠ Ġstart Fragment Transaction ( R . id . nav _ item _ dv u _ sv , Ġresources . getString ( R . string . dv u _ search _ view )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠStarts Ġfragment Ġtransaction Ġbased Ġon Ġnav Ġitem Ġid ĊĠĠĠĠ Ġ* Ġ@ param ĠitemId ĠInt ĠThe Ġmenu Ġitem Ġid ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġstart Fragment Transaction ( itemId : ĠInt , Ġtitle : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠSetting Ġthe Ġtool Ġbar Ġtitle Ġbased Ġon Ġthe Ġselected Ġfragment ĊĠĠĠĠĠĠĠ Ġd vu _ toolbar _ title . text Ġ= Ġtitle ĊĊĠĠĠĠĠĠĠ Ġval Ġfragment Transaction : ĠFragment Transaction Ġ= Ġsupport FragmentManager . beginTransaction () ĊĠĠĠĠĠĠĠ Ġfragments . forEach Ġ{ Ġfragment Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( fragment . tag Ġ== ĠitemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( support FragmentManager . find Fragment By Tag ( fragment . tag . toString ()) Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Transaction . add ( R . id . dv u _ fl _ content , Ġfragment . instance , Ġfragment . tag . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠShow ing Ġthe Ġselected Ġfragment ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Transaction . show ( fragment . instance ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( support FragmentManager . find Fragment By Tag ( fragment . tag . toString ()) Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠH iding Ġthe Ġothers Ġfragments ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Transaction . hide ( fragment . instance ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfragment Transaction . commit () ĊĠĠĠ Ġ} Ċ } Ċ