/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 9 ĠKevin Ġz hou Ċ Ġ* Ċ Ġ* Ġ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 . Ċ Ġ*/ Ċ package Ġcom . ke vin . grid pager . sample Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroidx . view pager . widget . ViewPager Ċ Ċ /** Ċ Ġ* ĠIndicator View Ċ Ġ* Ċ Ġ* Ġ@ author Ġz w enk ai @ fox mail . com , ĠCreated Ġon Ġ 2 0 1 9 - 1 1 - 2 1 Ġ 2 1 : 3 3 : 1 6 Ċ Ġ* ĠĠĠĠĠĠĠĠ ĠMajor ĠFunction ï¼ļ< b ></ b > Ċ Ġ* ĠĠĠĠĠĠĠĠ Ġ< p /> Ċ Ġ* ĠĠĠĠĠĠĠĠ ĠNote : ĠIf Ġyou Ġmodify Ġthis Ġclass Ġplease Ġfill Ġin Ġthe Ġfollowing Ġcontent Ġas Ġa Ġrecord . Ċ Ġ* Ġ@ author Ġm ender ï¼Į Modified ĠDate ĠModify ĠContent : Ċ Ġ*/ Ċ class ĠIndicator View Ġ@ Jvm Over loads Ġconstructor ( ĊĠĠĠ Ġcontext : ĠContext , Ġattrs : ĠAttributeSet ? Ġ= Ġnull , Ġdef Style Attr : ĠInt Ġ= Ġ 0 Ċ ) Ġ: ĠLinearLayout ( context , Ġattrs , Ġdef Style Attr ) Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġcurrent Position Ġ= Ġ 0 ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġorientation Ġ= ĠH ORIZONTAL ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsetup ViewPager ( view Pager : ĠView Pager ) Ġ{ ĊĠĠĠĠĠĠĠ Ġview Pager . add On Page ChangeListener ( object Ġ: ĠView Pager . Simple On Page ChangeListener () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Page Selected ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsetSelected ( position ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( current Position Ġ!= Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Un selected ( current Position ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Position Ġ= Ġposition ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġinit Indicator ( size : ĠInt , Ġindex : ĠInt Ġ= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġremove All Views () ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġsize ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdot Ġ= ĠImageView ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdot . setBackground Resource ( R . drawable . selector _ guide _ dots ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdot Width Ġ= ĠLayout Params . WRAP _ CONTENT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdot Height Ġ= ĠLayout Params . WRAP _ CONTENT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdot Params Ġ= ĠLayout Params ( dot Width , Ġdot Height ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdot Params . set Margins ( 4 , Ġ 0 , Ġ 4 , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdot . isEnabled Ġ= Ġi Ġ== Ġindex ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd View ( dot , Ġdot Params ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠsetSelected ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġget Child At ( position ). isEnabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġget Child At ( position ). request Layout () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Un selected ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġget Child At ( position ). isEnabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġget Child At ( position ). request Layout () ĊĠĠĠ Ġ} Ċ Ċ }