package Ġcom . ren yu . keyboard demo Ċ Ċ import Ġandroid . input method service . Keyboard View Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġcom . blank j . util code . util . Utils Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġvar Ġview _ keyboard : ĠKeyboard View ? Ġ= Ġnull ĊĊĠĠĠ Ġ// Ġæ » ļ åĬ¨ è·Ŀç¦» ĊĠĠĠ Ġvar Ġheight Ġ= Ġ 0 ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĊĠĠĠĠĠĠĠ ĠUtils . init ( this ) ĊĊĠĠĠĠĠĠĠ Ġview _ keyboard Ġ= ĠfindViewById ( R . id . view _ keyboard ) ĊĠĠĠĠĠĠĠ Ġed _ main . set Keyboard Type ( layout _ main , Ġview _ keyboard !! , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġed _ main . listener Ġ= Ġobject Ġ: ĠKey Board EditText . On Keyboard State ChangeListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġshow () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġed _ main . post Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrect Ġ= ĠInt Array ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġed _ main . getLocation On Screen ( rect ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġy Ġ= Ġrect [ 1 ] ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview _ keyboard ?. getLocation On Screen ( rect ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġkeyboard Y Ġ= Ġrect [ 1 ] ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheight Ġ= Ġy -( keyboard Y - ed _ main . meas ured Height ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlayout _ root . scroll By ( 0 , Ġheight ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġhide () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlayout _ root . scroll By ( 0 , Ġ- height ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ