// Ġ@ see Ġandroidx . core : core - k tx : version ĠĠ Ġandroidx . core . view Ċ package Ġframe . basis . jit pack . extension . view Ċ Ċ import Ġandroid . view . View Ċ import Ġandroid . view . View Tree Observer Ċ Ċ fun ĠView . add On Pre Draw Listener Expand ( action : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġview Tree Observer . add On Pre Draw Listener ( object Ġ: ĠView Tree Observer . On Pre Draw Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Pre Draw (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Tree Observer . remove On Pre Draw Listener ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction . invoke () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}) Ċ } Ċ Ċ fun ĠView . add On Global Layout Listener Expand ( action : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġview Tree Observer . add On Global Layout Listener ( object Ġ: ĠView Tree Observer . On Global Layout Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Global Layout () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Tree Observer . remove On Global Layout Listener ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction . invoke () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}) Ċ } Ċ Ċ fun ĠView . post Delayed Expand ( ĊĠĠĠ Ġdelay In Millis : ĠLong , ĊĠĠĠ Ġaction : Ġ() Ġ-> ĠUnit Ċ ): ĠRunnable Ġ{ ĊĠĠĠ Ġval Ġrunnable Ġ= ĠRunnable Ġ{ Ġaction () Ġ} ĊĠĠĠ Ġpost Delayed ( run nable , Ġdelay In Millis ) ĊĠĠĠ Ġreturn Ġrunnable Ċ } Ċ Ċ fun ĠView . isVisible Expand (): ĠBoolean Ġ= Ġvisibility Ġ== ĠView . VISIBLE Ċ Ċ fun ĠView . is G one Expand (): ĠBoolean Ġ= Ġvisibility Ġ== ĠView . GONE Ċ Ċ fun ĠView . isIn Visible Expand (): ĠBoolean Ġ= Ġvisibility Ġ== ĠView . IN VISIBLE Ċ Ċ fun ĠView . show Expand (): ĠView Ġ= Ġapply Ġ{ Ġif Ġ(! isVisible Expand ()) Ġvisibility Ġ= ĠView . VISIBLE Ġ} Ċ Ċ fun ĠView . hide Expand (): ĠView Ġ= Ġapply Ġ{ Ġif Ġ(! is G one Expand ()) Ġvisibility Ġ= ĠView . GONE Ġ} Ċ Ċ fun ĠView . invisible Expand (): ĠView Ġ= Ġapply Ġ{ Ġif Ġ(! isIn Visible Expand ()) Ġvisibility Ġ= ĠView . IN VISIBLE Ġ} Ċ Ċ fun Ġgone Views ( var arg Ġviews : ĠView ?) Ġ{ ĊĠĠĠ Ġfor Ġ( view Ġin Ġviews ) Ġ{ ĊĠĠĠĠĠĠĠ Ġview ?. hide Expand () ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġvisible Views ( var arg Ġviews : ĠView ?) Ġ{ ĊĠĠĠ Ġfor Ġ( view Ġin Ġviews ) Ġ{ ĊĠĠĠĠĠĠĠ Ġview ?. show Expand () ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġinvisible View ( var arg Ġviews : ĠView ?) Ġ{ ĊĠĠĠ Ġfor Ġ( view Ġin Ġviews ) Ġ{ ĊĠĠĠĠĠĠĠ Ġview ?. invisible Expand () ĊĠĠĠ Ġ} Ċ }