/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 8 ĠDr ake , ĠInc . Ġhttps :// github . com / li ang j ing kan ji Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ @ file : Suppress (" Member Visibility Can Be Private ") Ċ Ċ package Ġcom . dr ake . engine . widget Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . Motion Event Ċ import Ġandroidx . view pager . widget . ViewPager Ċ import Ġcom . dr ake . engine . R Ċ Ċ /** Ċ Ġ* Ġ è§£åĨ³ ĠIllegalArgumentException : Ġpointer Index Ġout Ġof Ġrange Ċ Ġ*/ Ċ class ĠFixed ViewPager ( context : ĠContext , Ġattrs : ĠAttributeSet ? Ġ= Ġnull ) Ġ: ĠView Pager ( context , Ġattrs ) Ġ{ ĊĊĠĠĠ Ġ/** Ġæĺ¯åĲ¦ æĶ¯æĮģ åĪĴ åĬ¨ Ġ*/ ĊĠĠĠ Ġvar Ġscroll able : ĠBoolean Ġ= Ġtrue ĊĊĠĠĠ Ġ/** Ġ è¯¥ å±ŀæĢ§ åı¯ä»¥ åĲ¯çĶ¨ é«ĺåº¦ ä¸º wrap _ content , ĠView Pager é»ĺè®¤ æĺ¯ match _ parent Ġ*/ ĊĠĠĠ Ġvar Ġwrap Height : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġattributes Ġ= Ġcontext . obtain Styled Attributes ( attrs , ĠR . style able . Fixed ViewPager ) ĊĠĠĠĠĠĠĠ Ġscroll able Ġ= Ġattributes . getBoolean ( R . style able . Fixed ViewPager _ pager _ scroll able , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġwrap Height Ġ= Ġattributes . getBoolean ( R . style able . Fixed ViewPager _ wrap _ height , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġattributes . recycle () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Intercept Touch Event ( ev : ĠMotion Event ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( scroll able ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Intercept Touch Event ( ev ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Touch Event ( ev : ĠMotion Event ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( scroll able ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Touch Event ( ev ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Measure ( width Measure Spec : ĠInt , Ġheight Measure Spec : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( wrap Height ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġheight Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġchild Count ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchild Ġ= Ġget Child At ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild . measure ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwidth Measure Spec , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMeasure Spec . make Measure Spec ( 0 , ĠMeasure Spec . UNSPECIFIED ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġh Ġ= Ġchild . meas ured Height ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( h Ġ> Ġheight ) Ġheight Ġ= Ġh ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Measure ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwidth Measure Spec , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMeasure Spec . make Measure Spec ( height , ĠMeasure Spec . EX ACT LY ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Measure ( width Measure Spec , Ġheight Measure Spec ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }