package Ġcom . that c bin . con sec ut ives c roller Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . core . view . View Compat Ċ import Ġandroidx . view pager . widget . ViewPager Ċ import Ġcom . that c bin . con sec ut ives c roller . Scroll Utils . is Con secutive Scroller Child Ċ import Ġjava . util .* Ċ Ċ class ĠC onse cut ive ViewPager Ġ: ĠView Pager , ĠI Con secutive Scroller Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġm Adjust Height Ġ= Ġ 0 ĊĊĠĠĠ Ġconstructor ( context : ĠContext ) Ġ: Ġsuper ( context ) Ġ{} ĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet ?) Ġ: Ġsuper ( context , Ġattrs ) Ġ{} ĊĊĠĠĠ Ġoverride Ġfun Ġon Measure ( width Measure Spec : ĠInt , Ġheight Measure Spec : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Con secutive Parent Ġ&& Ġm Adjust Height Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġheight Ġ= ĠView . getDefault Size ( 0 , Ġheight Measure Spec ) Ġ- Ġm Adjust Height ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Measure ( width Measure Spec , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMeasure Spec . make Measure Spec ( height , ĠMeasure Spec . get Mode ( height Measure Spec ))) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Measure ( width Measure Spec , Ġheight Measure Spec ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġadd View ( child : ĠView , Ġindex : ĠInt , Ġparams : ĠViewGroup . LayoutParams ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . addView ( child , Ġindex , Ġparams ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġ åİ» æİī åŃĲ View çļĦ æ»ļ åĬ¨ æĿ¡ ãĢĤ éĢīæĭ© åľ¨ è¿ĻéĩĮ åģļ è¿Ļä¸ª æĵįä½ľ ï¼Į èĢĮä¸įæĺ¯ åľ¨ on Finish Inf late æĸ¹æ³ķ ä¸Ń å®ĮæĪĲ ï¼Į æĺ¯ ä¸ºäºĨ åħ¼ é¡ ¾ çĶ¨ ä»£çłģ add åŃĲ View çļĦ æĥħåĨµ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Con secutive Scroller Child ( this )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdisable Child Scroll ( child ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( child Ġis ĠViewGroup ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild . clip To Padding Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ç¦ģ çĶ¨ åŃĲ view çļĦ ä¸Ģä¸ĭ æ»ĳ åĬ¨ çĽ¸åħ³ çļĦ å±ŀæĢ§ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġchild ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġdisable Child Scroll ( child : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġchild . is Vertical ScrollBar Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġchild . is Horizontal ScrollBar Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġchild . over Scroll Mode Ġ= ĠView . OVER _ SCROLL _ NE VER ĊĠĠĠĠĠĠĠ ĠView Compat . set Nested Scrolling Enabled ( child , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġis Con secutive Parent : ĠBoolean ĊĠĠĠĠĠĠĠ Ġprivate Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparent Ġ= Ġparent ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( parent Ġis ĠC onse cut ive Scroller Layout ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlayout Ġ= Ġparent ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġlayout . indexOf Child ( this ) Ġ== Ġlayout . child Count Ġ- Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġvar Ġadjust Height : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġm Adjust Height ĊĠĠĠĠĠĠĠ Ġset ( adjust Height ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Adjust Height Ġ!= Ġadjust Height ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Adjust Height Ġ= Ġadjust Height ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Layout () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġè¿ĶåĽŀ å½ĵåīį éľĢè¦ģ æ»ĳ åĬ¨ çļĦ view ãĢĤ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġval Ġcurrent Scroller View : ĠView ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcount Ġ= Ġchild Count ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġcount ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġget Child At ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( view . x Ġ== Ġ( scroll X Ġ+ Ġpadding Left ). toFloat ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġview ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġè¿ĶåĽŀ åħ¨éĥ¨ éľĢè¦ģ æ»ĳ åĬ¨ çļĦ ä¸ĭ çº§ view ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġval Ġsc rolled Views : ĠList < View > ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġviews : ĠMutable List < View > Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcount Ġ= Ġchild Count ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( count Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġcount ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġviews . add ( getChild At ( i )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġviews ĊĠĠĠĠĠĠĠ Ġ} Ċ }