package Ġview . core . loaders . builders . layouts Ċ Ċ import Ġview . core . loaders . view Tree . Illegal View Tree Exception Ċ import Ġview . core . loaders . builders . View Keys Ċ import Ġview . utils . map Based . keys . deleg ates . nullable . Bool RW Key Ċ import Ġview . utils . map Based . keys . deleg ates . nullable . String RW Key Ċ import Ġview . core . views . layouts . Relative Layout Ċ import Ġview . utils . extensions . non Null Ċ import Ġview . utils . extensions . to ID Ċ Ċ type alias ĠRP Ġ= ĠRelative Layout . Position ing Ċ Ċ open Ġclass ĠRelative Layout Builder : ĠLayout Builder < Relative Layout >() Ġ{ ĊĊĠĠĠĠ Ġclass ĠChild : ĠView Keys () Ġ{ ĊĠĠĠĠĠĠĠĠ Ġvar Ġalign Parent Top Ġby ĠBool RW Key ĊĠĠĠĠĠĠĠĠ Ġvar Ġalign Parent Bottom Ġby ĠBool RW Key ĊĠĠĠĠĠĠĠĠ Ġvar Ġalign Parent Start Ġby ĠBool RW Key ĊĠĠĠĠĠĠĠĠ Ġvar Ġalign Parent End Ġby ĠBool RW Key ĊĠĠĠĠĠĠĠĠ Ġvar Ġcenter Ġby ĠBool RW Key ĊĠĠĠĠĠĠĠĠ Ġvar Ġcenter Horizontal Ġby ĠBool RW Key ĊĠĠĠĠĠĠĠĠ Ġvar Ġcenter Vertical Ġby ĠBool RW Key ĊĊĠĠĠĠĠĠĠĠ Ġvar Ġtop Of Ġby ĠString RW Key ĊĠĠĠĠĠĠĠĠ Ġvar Ġbottom Of Ġby ĠString RW Key ĊĠĠĠĠĠĠĠĠ Ġvar Ġstart Of Ġby ĠString RW Key ĊĠĠĠĠĠĠĠĠ Ġvar Ġend Of Ġby ĠString RW Key ĊĊĠĠĠĠĠĠĠĠ Ġvar Ġalign Top Ġby ĠString RW Key ĊĠĠĠĠĠĠĠĠ Ġvar Ġalign Bottom Ġby ĠString RW Key ĊĠĠĠĠĠĠĠĠ Ġvar Ġalign Start Ġby ĠString RW Key ĊĠĠĠĠĠĠĠĠ Ġvar Ġalign End Ġby ĠString RW Key ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġview Ġ= ĠRelative Layout () ĊĊĠĠĠ Ġoverride Ġfun Ġadd Children To Views () Ġ{ ĊĠĠĠĠĠĠĠ Ġchildren . forEach Ġ{ Ġpair Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpos : ĠMutable List < Pair < RP , ĠInt >> Ġ= Ġmutable ListOf () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġkeys Ġ= ĠChild () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkeys . keys Ġ= Ġpair . second . to Mutable Map () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġkeys . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalign Parent Top . non Null Ġ{ Ġpos Ġ+= ĠRP . ALIGN _ PARENT _ TOP Ġto Ġview . id Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalign Parent Bottom . non Null Ġ{ Ġpos Ġ+= ĠRP . ALIGN _ PARENT _ BOTTOM Ġto Ġview . id Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalign Parent Start . non Null Ġ{ Ġpos Ġ+= ĠRP . ALIGN _ PARENT _ START Ġto Ġview . id Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalign Parent End . non Null Ġ{ Ġpos Ġ+= ĠRP . ALIGN _ PARENT _ END Ġto Ġview . id Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcenter . non Null Ġ{ Ġpos Ġ+= ĠlistOf ( RP . CENTER _ VERTICAL Ġto Ġview . id , ĠRP . CENTER _ HORIZONTAL Ġto Ġview . id ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcenter Horizontal . non Null Ġ{ Ġpos Ġ+= ĠRP . CENTER _ HORIZONTAL Ġto Ġview . id Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcenter Vertical . non Null Ġ{ Ġpos Ġ+= ĠRP . CENTER _ VERTICAL Ġto Ġview . id Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop Of . non Null Ġ{ Ġpos Ġ+= ĠRP . TOP _ OF Ġto Ġassign Id ( it . to ID ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Of . non Null Ġ{ Ġpos Ġ+= ĠRP . BOTTOM _ OF Ġto Ġassign Id ( it . to ID ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Of . non Null Ġ{ Ġpos Ġ+= ĠRP . START _ OF Ġto Ġassign Id ( it . to ID ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend Of . non Null Ġ{ Ġpos Ġ+= ĠRP . END _ OF Ġto Ġassign Id ( it . to ID ()) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalign Top . non Null Ġ{ Ġpos Ġ+= ĠRP . ALIGN _ TOP Ġto Ġassign Id ( it . to ID ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalign Bottom . non Null Ġ{ Ġpos Ġ+= ĠRP . ALIGN _ BOTTOM Ġto Ġassign Id ( it . to ID ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalign Start . non Null Ġ{ Ġpos Ġ+= ĠRP . ALIGN _ START Ġto Ġassign Id ( it . to ID ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalign End . non Null Ġ{ Ġpos Ġ+= ĠRP . ALIGN _ END Ġto Ġassign Id ( it . to ID ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . addChild ( pair . first , Ġpos ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġassign Id ( id : ĠInt ) Ġ= Ġif Ġ( view . children (). any Ġ{ Ġid Ġ== Ġit . id Ġ}) Ġid ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġthrow ĠIllegal View Tree Exception (" Position ing ĠView Ġrelative Ġto Ġa Ġnon - existent ĠView ") Ċ }