package Ġcom . ram otion . navigation toolbar Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroidx . annotation . Attr Res Ċ import Ġandroidx . appcompat . widget . Toolbar Ċ import Ġandroidx . coordinator layout . widget . Coordinator Layout Ċ import Ġcom . google . android . material . app bar . AppBar Layout Ċ import Ġcom . google . android . material . app bar . Col lap sing Toolbar Layout Ċ import Ġcom . ram otion . navigation toolbar . Header LayoutManager .* Ċ Ċ /** Ċ Ġ* ĠThe Ġmain Ġclass Ġthat Ġcombin es Ġtwo Ġother Ġmain Ġclasses : ĠHeader LayoutManager Ġand ĠHeader Layout . Ċ Ġ* Ġ@ see ĠHeader LayoutManager Ċ Ġ* Ġ@ see ĠHeader Layout Ċ Ġ*/ Ċ class ĠNavigation ToolBar Layout Ġ: ĠCoord inator Layout Ġ{ ĊĊĠĠĠ Ġprivate Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠHEADER _ HIDE _ START Ġ= Ġ 0 . 5 f ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠItem Transformer Ġabstract Ġclass Ġcan Ġbe Ġused Ġas Ġparent Ġfor Ġclass Ġthat Ġwill Ġbe Ġresponsible ĊĠĠĠĠ Ġ* Ġfor Ġtransformation Ġof ĠHeader Layout Ġchild , Ġduring ĠHeader Layout Ġchange Ġ( expand Ġ/ Ġcollapse ) ĊĠĠĠĠ Ġ* Ġor Ġupdate Ġ( redraw Ġ/ Ġfill ). ĊĠĠĠĠ Ġ* Ġ@ see ĠDefault Item Transformer ĊĠĠĠĠ Ġ* Ġ@ see Ġset Item Transformer ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġabstract Ġclass ĠItem Transformer Ġ: ĠHeader ChangeListener , ĠHeader Update Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġprotected Ġvar Ġnavigation ToolBar Layout : ĠNavigation ToolBar Layout ? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġset ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠCalled Ġon ĠHeader Layout Ġchange Ġ( expand Ġ/ Ġcollapse ) Ġor Ġupdate Ġ( redraw Ġ/ Ġfill ). ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġlm ĠHeader LayoutManager ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġheader ĠHeader Layout ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġheader Bottom ĠHeader Layout Ġbottom Ġposition . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġabstract Ġfun Ġtransform ( lm : ĠHeader LayoutManager , Ġheader : ĠHeader Layout , Ġheader Bottom : ĠInt ) ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠCalled Ġon Ġattach Ġot ĠNavigation ToolBar Layout . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ see Ġset Item Transformer ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġabstract Ġfun Ġon Attach ( ntl : ĠNavigation ToolBar Layout ) ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠCalled Ġon Ġdetach Ġfrom ĠNavigation ToolBar Layout . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ see Ġset Item Transformer ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġabstract Ġfun Ġon Detach () ĊĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġattach ( ntl : ĠNavigation ToolBar Layout ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnavigation ToolBar Layout Ġ= Ġn tl ĊĠĠĠĠĠĠĠĠĠĠĠ Ġn tl . add Header ChangeListener ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġn tl . add Header Update Listener ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Attach ( ntl ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġdetach () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Detach () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnavigation ToolBar Layout ?. also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . remove Header ChangeListener ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . remove Header Update Listener ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnavigation ToolBar Layout Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfinal Ġoverride Ġfun Ġon Header Changed ( lm : ĠHeader LayoutManager , Ġheader : ĠHeader Layout , Ġheader Bottom : ĠInt ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransform ( lm , Ġheader , Ġheader Bottom ) ĊĊĠĠĠĠĠĠĠ Ġfinal Ġoverride Ġfun Ġon Header Updated ( lm : ĠHeader LayoutManager , Ġheader : ĠHeader Layout , Ġheader Bottom : ĠInt ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransform ( lm , Ġheader , Ġheader Bottom ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠToolbar Ġlayout Ġwith Ġid Ġ`@ id / com _ ram otion _ toolbar `. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġtool Bar : ĠToolbar ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠApp Bar Layout Ġwith Ġid Ġ`@ id / com _ ram otion _ app _ bar `. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġapp Bar Layout : ĠApp Bar Layout ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠHeader Layout . ĊĠĠĠĠ Ġ* Ġ@ see ĠHeader Layout ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġheader Layout : ĠHeader Layout ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠHeader LayoutManager . ĊĠĠĠĠ Ġ* Ġ@ see ĠHeader LayoutManager ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġlayout Manager : ĠHeader LayoutManager ĊĊĠĠĠ Ġprivate Ġvar Ġitem Transformer : ĠItem Transformer ? Ġ= Ġnull ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet ?) Ġ: Ġthis ( context , Ġattrs , Ġ 0 ) ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet ?, Ġ@ Attr Res Ġdef Style Attr : ĠInt ) Ġ: Ġsuper ( context , Ġattrs , Ġdef Style Attr ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLayoutInflater . from ( context ). inflate ( R . layout . navigation _ layout , Ġthis , Ġtrue ) ĊĊĠĠĠĠĠĠĠ Ġtool Bar Ġ= ĠfindViewById ( R . id . com _ ram otion _ toolbar ) ĊĠĠĠĠĠĠĠ Ġheader Layout Ġ= ĠfindViewById ( R . id . com _ ram otion _ header _ layout ) ĊĠĠĠĠĠĠĠ Ġlayout Manager Ġ= ĠHeader LayoutManager ( context , Ġattrs ) ĊĠĠĠĠĠĠĠ Ġ( header Layout . layout Params Ġas ĠCoord inator Layout . LayoutParams ). behavior Ġ= Ġlayout Manager ĊĊĠĠĠĠĠĠĠ Ġapp Bar Layout Ġ= ĠfindViewById ( R . id . com _ ram otion _ app _ bar ) ĊĠĠĠĠĠĠĠ Ġapp Bar Layout . outline Provider Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġapp Bar Layout . add On Offset Changed Listener ( layout Manager ) ĊĠĠĠĠĠĠĠ Ġ( app Bar Layout . layout Params Ġas ĠCoord inator Layout . LayoutParams ). behavior Ġ= Ġlayout Manager . app Bar Behavior ĊĊĠĠĠĠĠĠĠ Ġattrs ?. also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġa Ġ= Ġcontext . theme . obtain Styled Attributes ( attrs , ĠR . style able . Navigation Tool B arr , Ġdef Style Attr , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( a . hasValue ( R . style able . Navigation Tool B arr _ header Background Layout )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbackground Id Ġ= Ġa . getResource Id ( R . style able . Navigation Tool B arr _ header Background Layout , Ġ- 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit Background Layout ( context , Ġbackground Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa . recycle () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġset Item Transformer ( null ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSets ĠHeader Layout ĠAdapter . ĊĠĠĠĠ Ġ* Ġ@ see ĠHeader Layout ĊĠĠĠĠ Ġ* Ġ@ see ĠHeader Layout . Adapter ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset Adapter ( adapter : ĠHeader Layout . Adapter < out ĠHeader Layout . ViewHolder >) Ġ= Ġheader Layout . setAdapter ( adapter ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠScroll Ġheader Ġto Ġspecified Ġposition . ĊĠĠĠĠ Ġ* Ġ@ param Ġpos ĠPosition Ġwhere Ġto Ġscroll ĊĠĠĠĠ Ġ* Ġ@ see ĠHeader LayoutManager . scrollTo Position ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġscroll To Position ( pos : ĠInt ) Ġ= Ġlayout Manager . scrollTo Position ( pos ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSm ooth Ġscroll Ġheader Ġto Ġspecified Ġposition . ĊĠĠĠĠ Ġ* Ġ@ param Ġpos ĠPosition Ġwhere Ġto Ġscroll . ĊĠĠĠĠ Ġ* Ġ@ see ĠHeader LayoutManager . smooth Scroll To Position ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġsmooth Scroll To Position ( pos : ĠInt ) Ġ= Ġlayout Manager . smooth Scroll To Position ( pos ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġcurrent Ġcenter Ġcard , Ġadapter Ġposition . ĊĠĠĠĠ Ġ* Ġ@ return ĠCurrent Ġcenter Ġcard , Ġadapter Ġposition Ġor ĠHeader Layout . INVALID _ POSITION Ġif Ġcard Ġnot Ġfound . ĊĠĠĠĠ Ġ* Ġ@ see ĠHeader Layout . INVALID _ POSITION ĊĠĠĠĠ Ġ* Ġ@ see ĠHeader LayoutManager . get Anchor Pos ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Anchor Pos (): ĠInt Ġ= Ġlayout Manager . get Anchor Pos ( header Layout ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAdds ĠItem ChangeListener . ĊĠĠĠĠ Ġ* Ġ@ param Ġlistener ĠItem ChangeListener Ġto Ġadd . ĊĠĠĠĠ Ġ* Ġ@ see ĠItem ChangeListener ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġadd Item ChangeListener ( listener : ĠItem ChangeListener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlayout Manager . item Change Listeners Ġ+= Ġlistener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRemoves ĠItem ChangeListener . ĊĠĠĠĠ Ġ* Ġ@ param Ġlistener ĠItem ChangeListener Ġto Ġremove . ĊĠĠĠĠ Ġ* Ġ@ see ĠItem ChangeListener ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġremove Item ChangeListener ( listener : ĠItem ChangeListener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlayout Manager . item Change Listeners Ġ-= Ġlistener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAdds ĠScroll State Listener . ĊĠĠĠĠ Ġ* Ġ@ param Ġlistener ĠScroll State Listener Ġto Ġadd . ĊĠĠĠĠ Ġ* Ġ@ see ĠScroll State Listener ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġadd Scroll State Listener ( listener : ĠScroll State Listener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlayout Manager . scroll State Listeners Ġ+= Ġlistener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRemoves ĠScroll State Listener . ĊĠĠĠĠ Ġ* Ġ@ param Ġlistener ĠScroll State Listener Ġto Ġremove . ĊĠĠĠĠ Ġ* Ġ@ see ĠScroll State Listener ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġremove Scroll State Listener ( listener : ĠScroll State Listener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlayout Manager . scroll State Listeners Ġ-= Ġlistener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAdds ĠItem ClickListener . ĊĠĠĠĠ Ġ* Ġ@ param Ġlistener ĠItem ClickListener Ġto Ġadd . ĊĠĠĠĠ Ġ* Ġ@ see ĠItem ChangeListener ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġadd ItemClickListener ( listener : ĠItem ClickListener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlayout Manager . item Click Listeners Ġ+= Ġlistener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRemoves ĠItem ClickListener . ĊĠĠĠĠ Ġ* Ġ@ param Ġlistener ĠItem ClickListener Ġto Ġremove . ĊĠĠĠĠ Ġ* Ġ@ see ĠItem ClickListener ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġremove ItemClickListener ( listener : ĠItem ClickListener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlayout Manager . item Click Listeners Ġ-= Ġlistener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAdds ĠHeader ChangeListener ĊĠĠĠĠ Ġ* Ġ@ param Ġlistener ĠHeader ChangeListener Ġto Ġadd . ĊĠĠĠĠ Ġ* Ġ@ see ĠHeader ChangeListener ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġadd Header ChangeListener ( listener : ĠHeader ChangeListener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlayout Manager . change Listener Ġ+= Ġlistener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRemoves ĠHeader ChangeListener ĊĠĠĠĠ Ġ* Ġ@ param Ġlistener ĠHeader ChangeListener Ġto Ġremove . ĊĠĠĠĠ Ġ* Ġ@ see ĠHeader ChangeListener ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġremove Header ChangeListener ( listener : ĠHeader ChangeListener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlayout Manager . change Listener Ġ-= Ġlistener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAdds ĠHeader Update Listener . ĊĠĠĠĠ Ġ* Ġ@ param Ġlistener ĠHeader Update Listener Ġto Ġadd . ĊĠĠĠĠ Ġ* Ġ@ see ĠHeader Update Listener ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġadd Header Update Listener ( listener : ĠHeader Update Listener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlayout Manager . update Listener Ġ+= Ġlistener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRemoves ĠHeader Update Listener . ĊĠĠĠĠ Ġ* Ġ@ param Ġlistener ĠHeader Update Listener Ġto Ġremove . ĊĠĠĠĠ Ġ* Ġ@ see ĠHeader Update Listener ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġremove Header Update Listener ( listener : ĠHeader Update Listener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlayout Manager . update Listener Ġ-= Ġlistener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAdds ĠItem Decoration . ĊĠĠĠĠ Ġ* Ġ@ param Ġdecoration ĠItem Decoration Ġto Ġadd . ĊĠĠĠĠ Ġ* Ġ@ see ĠItem Decoration ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġadd Item Decoration ( decoration : ĠItem Decoration ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlayout Manager . addItem Decoration ( decoration ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRemoves ĠItem Decoration . ĊĠĠĠĠ Ġ* Ġ@ param Ġdecoration ĠItem Decoration Ġto Ġremove . ĊĠĠĠĠ Ġ* Ġ@ see ĠItem Decoration ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġremove Item Decoration ( decoration : ĠItem Decoration ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlayout Manager . removeItem Decoration ( decoration ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAdds ĠHeader Change State Listener . ĊĠĠĠĠ Ġ* Ġ@ param Ġlistener ĠHeader Change State Listener Ġto Ġadd . ĊĠĠĠĠ Ġ* Ġ@ see ĠHeader Change State Listener ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġadd Header Change State Listener ( listener : ĠHeader Change State Listener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlayout Manager . change Listener Ġ+= Ġlistener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRemoves ĠHeader Change State Listener . ĊĠĠĠĠ Ġ* Ġ@ param Ġlistener ĠHeader Change State Listener Ġto Ġremove . ĊĠĠĠĠ Ġ* Ġ@ see ĠHeader Change State Listener ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġremove Header Change State Listener ( listener : ĠHeader Change State Listener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlayout Manager . change Listener Ġ-= Ġlistener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSets ĠItem Transformer . ĊĠĠĠĠ Ġ* Ġ@ param Ġnew Transformer ĠNew Ġtransformer . ĠCan Ġbe Ġnull . ĠIf Ġnull , Ġthen ĠDefault Item Transformer Ġwill Ġbe Ġused . ĊĠĠĠĠ Ġ* Ġ@ see ĠItem Transformer ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset Item Transformer ( new Transformer : ĠItem Transformer ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġitem Transformer ?. also Ġ{ Ġit . detach () Ġ} ĊĊĠĠĠĠĠĠĠ Ġ( new Transformer Ġ?: ĠDefault Item Transformer ()). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . attach ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem Transformer Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcollapse () Ġ{ ĊĠĠĠĠĠĠĠ Ġlayout Manager . get Anchor View ( header Layout ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . let Ġ{ ĠHeader Layout . getChild ViewHolder ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . also Ġ{ Ġlayout Manager . on Header Item Click ( header Layout , Ġit ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġexpand ( animate : ĠBoolean ) Ġ= Ġapp Bar Layout . set Expanded ( true , Ġanimate ) ĊĊĠĠĠ Ġprivate Ġfun Ġinit Background Layout ( context : ĠContext , Ġlayout Id : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġctl Ġ= ĠfindViewById < Col lap sing Toolbar Layout >( R . id . com _ ram otion _ toolbar _ layout ) ĊĠĠĠĠĠĠĠ Ġval Ġbackground Ġ= ĠLayoutInflater . from ( context ). inflate ( layout Id , Ġctl , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġadd Header ChangeListener ( object Ġ: ĠHeader ChangeListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Header Changed ( lm : ĠHeader LayoutManager , Ġheader : ĠHeader Layout , Ġheader Bottom : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġratio Ġ= Ġ 1 f Ġ- Ġheader Bottom Ġ/ Ġ( header Layout . height Ġ+ Ġ 1 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġheader Alpha Ġ= Ġif Ġ( ratio Ġ>= ĠHEADER _ HIDE _ START ) Ġ 0 f Ġelse Ġ 1 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbackground . alpha Ġ= Ġheader Alpha ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ }