package Ġme . byte beats . views . scroll ing Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġbyte beats Ġon Ġ 2 0 2 1 / 1 0 / 1 5 Ġ: Ġ 1 7 : 1 7 Ċ Ġ* ĠE - mail : Ġhappy ch in ap c @ gmail . com Ċ Ġ* ĠQuote : ĠPe as ant . ĠEduc ated . ĠWorker Ċ Ġ*/ Ċ class ĠCo herent Scrolling Layout Ġ@ Jvm Over loads Ġconstructor ( ĊĠĠĠ Ġcontext : ĠContext , ĊĠĠĠ Ġattrs : ĠAttributeSet ? Ġ= Ġnull , ĊĠĠĠ Ġdef Style Attr : ĠInt Ġ= Ġ 0 Ċ ) Ġ: ĠViewGroup ( context , Ġattrs , Ġdef Style Attr ) Ġ{ ĊĊĠĠĠ Ġvar Ġscroll Child Res Ġ= Ġ 0 ĊĊĠĠĠ Ġoverride Ġfun Ġon Layout ( changed : ĠBoolean , Ġl : ĠInt , Ġt : ĠInt , Ġr : ĠInt , Ġb : ĠInt ) Ġ{ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Drawing Position ( child : ĠView ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis Sticky View ( child : ĠView ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġthe Child Is Stick ( child : ĠView ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠLayout Params Ġ: ĠMargin LayoutParams Ġ{ ĊĠĠĠĠĠĠĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet ?) Ġ: Ġsuper ( context , Ġattrs ) ĊĠĠĠĠĠĠĠ Ġconstructor ( width : ĠInt , Ġheight : ĠInt ) Ġ: Ġsuper ( width , Ġheight ) ĊĠĠĠĠĠĠĠ Ġconstructor ( source : ĠLayout Params ) Ġ: Ġsuper ( source ) ĊĠĠĠĠĠĠĠ Ġconstructor ( source : ĠViewGroup . LayoutParams ) Ġ: Ġsuper ( source ) ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġæĺ¯åĲ¦ ä¸İ çĪ¶ å¸ĥå±Ģ æķ´ ä½ĵ æ»ĳ åĬ¨ ï¼Į è®¾ç½®ä¸º false æĹ¶ ï¼Į çĪ¶ å¸ĥå±Ģ ä¸įä¼ļ æĭ ¦ æĪª å®ĥçļĦ äºĭä»¶ ï¼Į æ»ĳ åĬ¨ äºĭä»¶ å°Ĩ çĶ± åŃĲ view å¤ĦçĲĨ ãĢĤ ĊĠĠĠĠĠĠĠĠ Ġ* Ġåı¯ä»¥ å®ŀçİ° åŃĲ view åĨħéĥ¨ çļĦ åŀ Ĥ çĽ´ æ»ĳ åĬ¨ ãĢĤ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġvar Ġis Co herent Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġæĺ¯åĲ¦ æĶ¯æĮģ åµ Į å¥Ĺ æ»ĳ åĬ¨ ï¼Į é»ĺè®¤ æĶ¯æĮģ ï¼Į å¦Ĥæŀľ åŃĲ view æĪĸ å®ĥ åĨħéĥ¨ çļĦ ä¸ĭ çº§ view å®ŀçİ° äºĨ Nested Scrolling Child æİ¥åı£ ï¼Į ĊĠĠĠĠĠĠĠĠ Ġ* Ġ å®ĥ åı¯ä»¥ ä¸İ Co herent Scrolling Layout åµ Į å¥Ĺ æ»ĳ åĬ¨ ï¼Į æĬĬ is Nested Scroll è®¾ç½®ä¸º false åı¯ä»¥ ç¦ģ æŃ¢ å®ĥ ä¸İ Co herent Scrolling Layout åµ Į å¥Ĺ æ»ĳ åĬ¨ ãĢĤ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġvar Ġis Nested Scroll Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġè®¾ç½® åŃĲ view æĺ¯åĲ¦ æĶ¯æĮģ åĲ ¸ é¡¶ æ Ĥ¬ æµ ® ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġvar Ġis Sticky Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġåľ¨ View åĲ ¸ é¡¶ çļĦ çĬ¶æĢģ ä¸ĭ ï¼Į æĺ¯åĲ¦ åı¯ä»¥ è§¦ æĳ ¸ view æĿ¥ æ»ĳ åĬ¨ Co herent Scrolling Layout å¸ĥå±Ģ ãĢĤ ĊĠĠĠĠĠĠĠĠ Ġ* Ġé»ĺè®¤ ä¸º false ï¼Į åĪĻ View åĲ ¸ é¡¶ çļĦ çĬ¶æĢģ ä¸ĭ ï¼Į ä¸įèĥ½ è§¦ æĳ ¸ å®ĥ æĿ¥ æ»ĳ åĬ¨ å¸ĥå±Ģ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġvar Ġinvoke Scroll When Pin ned Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ åĲ ¸ é¡¶ ä¸ĭ æ² ī æ¨¡å¼ı ĊĠĠĠĠĠĠĠĠ Ġ* Ġé»ĺè®¤ æĥħåĨµä¸ĭ ï¼Į åĲ ¸ é¡¶ view åľ¨ åĲ ¸ é¡¶ çĬ¶æĢģ ä¸ĭ ï¼Į ä¼ļ æĺ¾ç¤º åľ¨ å¸ĥå±Ģ ä¸Ĭ å±Ĥ ï¼Į è¦ĨçĽĸ åħ¶ä»ĸ å¸ĥå±Ģ ãĢĤ ĊĠĠĠĠĠĠĠĠ Ġ* Ġå¦Ĥæŀľ è®¾ç½® äºĨ ä¸ĭ æ² ī æ¨¡å¼ı ï¼Į åĪĻ ä¼ļ çĽ¸ åıį ï¼Į view åľ¨ åĲ ¸ é¡¶ æĹ¶ ä¼ļ æĺ¾ç¤º åľ¨ ä¸ĭ å±Ĥ ï¼Į è¢« åħ¶ä»ĸ å¸ĥå±Ģ è¦ĨçĽĸ ï¼Į éļĲèĹı åľ¨ ä¸ĭéĿ¢ ãĢĤ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġvar Ġoverlay When Pin ned Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġvar Ġscroll Child Res : ĠInt Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġvar Ġalign Ġ= ĠAlign . START ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġchild Ġview Ġ çĽ¸ å¯¹äºİ Ġparent Ġview ĠçļĦ ä½įç½® åħ³ç³» ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġenum Ġclass ĠAlign ( private Ġval Ġvalue : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSTART ( 1 ), ĠEND ( 2 ), ĠC ENTER ( 3 ); ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġfrom ( value : ĠInt ): ĠAlign Ġ= Ġvalues (). first OrNull Ġ{ Ġit . value Ġ== Ġvalue Ġ} Ġ?: ĠSTART ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }