package Ġcom . summer . ca id ao . keyboard . dismiss Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . app . Fragment Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Frame Layout Ċ import Ġandroidx . constraint layout . widget . Constraint Layout ĊĊ Ċ /** Ċ Ġ* ĠCreated Ġby Ċ Ġ* ĠUser Ġ-> ĠSum mer Ċ Ġ* ĠDate Ġ-> Ġ 2 0 1 8 / 6 / 1 Ċ Ġ* Ċ Ġ* ĠDescription : Ġ çĤ¹åĩ» ç©º çĻ½ ä½įç½® æĶ¶ èµ· éĶ® çĽĺ å·¥åħ· ç±» , çĽĳåĲ¬ æ³¨åĨĮ ç±» Ċ Ġ* Ċ Ġ*/ Ċ class ĠC ai Dao Keyboard Dismiss Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġs Supported Classes Ġ= ĠarrayOf (" LinearLayout ", Ġ" Relative Layout ", Ġ" Coordinator Layout ", Ġ" Constraint Layout ") ĊĊĠĠĠ Ġfun Ġuse With ( fragment : ĠFragment ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Group Ġ= Ġfragment . view Ġas ĠViewGroup ĊĠĠĠĠĠĠĠ Ġif Ġ( null Ġ!= Ġfragment . activity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġswap Main Layout With Dis missing Layout ( view Group , Ġfragment . activity !! ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġuse With ( activity : ĠActivity ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontent Ġ= Ġactivity . findViewById < Frame Layout >( android . R . id . content ) ĊĠĠĠĠĠĠĠ Ġval Ġview Group Ġ= Ġcontent . getChild At ( 0 ) Ġas ĠViewGroup ĊĊĠĠĠĠĠĠĠ Ġswap Main Layout With Dis missing Layout ( view Group , Ġactivity ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġuse With ( view Group : ĠViewGroup , Ġactivity : ĠActivity ) Ġ{ ĊĠĠĠĠĠĠĠ Ġswap Main Layout With Dis missing Layout ( view Group , Ġactivity ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġswap Main Layout With Dis missing Layout ( view Group : ĠViewGroup ?, Ġactivity : ĠActivity ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( view Group Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġvar ĠclassName Ġ= Ġ"" ĊĊĠĠĠĠĠĠĠ Ġval Ġview Group ClassName Ġ= Ġview Group . java Class . simple Name ĊĠĠĠĠĠĠĠ Ġfor Ġ( name Ġin Ġs Supported Classes ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( view Group ClassName Ġ== Ġname ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠclassName Ġ= Ġname ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġvar Ġgenerated Layout : ĠViewGroup Ġ= Ġview Group ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ( className ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" LinearLayout " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgenerated Layout Ġ= ĠC ai Dao Keyboard Dis missing LinearLayout ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgenerated Layout . set Activity ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Relative Layout " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgenerated Layout Ġ= ĠC ai Dao Keyboard Dis missing Relative Layout ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgenerated Layout . set Activity ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Coordinator Layout " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgenerated Layout Ġ= ĠC ai Dao Keyboard Dis missing Coordinator Layout ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgenerated Layout . set Activity ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Constraint Layout " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgenerated Layout Ġ= ĠC ai Dao Keyboard Dis missing Constraint Layout ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgenerated Layout . set Activity ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( className . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( view Group . layout Params Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgenerated Layout . layout Params Ġ= Ġview Group . layout Params ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgenerated Layout . layout Params Ġ= ĠViewGroup . LayoutParams ( ViewGroup . LayoutParams . MATCH _ PARENT , ĠViewGroup . LayoutParams . MATCH _ PARENT ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( generated Layout Ġis ĠC ai Dao Keyboard Dis missing Constraint Layout ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġwidth Of Original Layout Ġ= ĠConstraint Layout . LayoutParams . MATCH _ PARENT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġheight Of Original Layout Ġ= ĠConstraint Layout . LayoutParams . MATCH _ PARENT ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( view Group . layout Params Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwidth Of Original Layout Ġ= Ġview Group . layout Params . width ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheight Of Original Layout Ġ= Ġview Group . layout Params . height ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlayout Params Ġ= ĠConstraint Layout . LayoutParams ( width Of Original Layout , Ġheight Of Original Layout ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Params . validate () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġgenerated Layout . layout Params Ġ= Ġlayout Params ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġwhile Ġ( view Group . child Count Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchild Ġ= Ġview Group . getChild At ( 0 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Group . remove View At ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgenerated Layout . addView ( child ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġview Group . removeAll Views () ĊĠĠĠĠĠĠĠ Ġview Group . addView ( generated Layout , Ġ 0 ) ĊĠĠĠ Ġ} Ċ Ċ }