package Ġcom . lo dz . android . agile dev kt . modules . rv . anim Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . annotation . String Res Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . lo dz . android . agile dev kt . R Ċ import Ġcom . lo dz . android . agile dev kt . databinding . Activity Anim Rv Binding Ċ import Ġcom . lo dz . android . agile dev kt . modules . main . MainActivity Ċ import Ġcom . lo dz . android . core kt . ank o . dp 2 px Ċ import Ġcom . lo dz . android . core kt . utils . Date Utils Ċ import Ġcom . lo dz . android . pand ora . base . activity . Base Activity Ċ import Ġcom . lo dz . android . pand ora . utils . view binding . binding Layout Ċ import Ġcom . lo dz . android . pand ora . widget . base . Title Bar Layout Ċ import Ġcom . lo dz . android . pand ora . widget . rv . recycler . Base RecyclerView Adapter Ċ Ċ /** Ċ Ġ* ĠR V åĬ¨çĶ» æµĭè¯ķ Ċ Ġ* ĠCreated Ġby Ġz hou L Ġon Ġ 2 0 1 8 / 1 1 / 2 3 . Ċ Ġ*/ Ċ class ĠAnim Rv Activity Ġ: ĠBase Activity () Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġstart ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( context , ĠAnim Rv Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . startActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** Ġ éĢĤ éħį åĻ¨ Ġ*/ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Adapter : ĠAnim Rv Adapter ĊĊĠĠĠ Ġ/** Ġå½ĵåīį åĬ¨çĶ» ç±»åŀĭ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġm Anim Type Ġ= ĠBase RecyclerView Adapter . SCALE _ IN ĊĊĠĠĠ Ġprivate Ġval Ġm Binding : ĠActivity Anim Rv Binding Ġby Ġbinding Layout ( Activity Anim Rv Binding :: inflate ) ĊĊĠĠĠ Ġoverride Ġfun Ġget View Binding Layout (): ĠView Ġ= Ġm Binding . root ĊĊĠĠĠ Ġoverride Ġfun Ġfind Views ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġinit Title Bar ( getTitle Bar Layout ()) ĊĠĠĠĠĠĠĠ Ġinit RecyclerView () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠåĪĿå§ĭåĮĸ æłĩé¢ĺ æłı Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġinit Title Bar ( title Bar Layout : ĠTitle Bar Layout ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtitle Bar Layout . setTitle Name ( intent . getString Extra ( MainActivity . EXTRA _ TITLE _ NAME ) Ġ?: Ġ"") ĊĠĠĠĠĠĠĠ Ġtitle Bar Layout . need Expand View ( true ) ĊĠĠĠĠĠĠĠ Ġtitle Bar Layout . add Expand View ( get Expand View ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit RecyclerView () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlayout Manager Ġ= ĠLinearLayoutManager ( getContext ()) ĊĠĠĠĠĠĠĠ Ġlayout Manager . orientation Ġ= ĠRecyclerView . VERTICAL ĊĠĠĠĠĠĠĠ Ġm Adapter Ġ= ĠAnim Rv Adapter ( getContext ()) ĊĠĠĠĠĠĠĠ Ġm Adapter . set Open Item Anim ( true )// å¼Ģ åĲ¯åĬ¨ çĶ» ĊĠĠĠĠĠĠĠ Ġm Adapter . setItem Anim Start Position ( 7 )// è®¾ç½® åĬ¨çĶ» èµ· å§ĭ ä½įç½® ĊĠĠĠĠĠĠĠ Ġm Adapter . set Animation Type ( m Anim Type )// è®¾ç½® åĬ¨çĶ» ç±»åŀĭ ĊĠĠĠĠĠĠĠ Ġm Binding . re cyclerView . layout Manager Ġ= Ġlayout Manager ĊĠĠĠĠĠĠĠ Ġm Binding . re cyclerView . set Has Fixed Size ( true ) ĊĠĠĠĠĠĠĠ Ġm Binding . re cyclerView . adapter Ġ= Ġm Adapter ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonClick Back Btn () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onClick Back Btn () ĊĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . init Data () ĊĠĠĠĠĠĠĠ Ġm Adapter . setData ( create List ()) ĊĠĠĠĠĠĠĠ Ġm Adapter . notify DataSet Changed () ĊĠĠĠĠĠĠĠ Ġshow Status Completed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate List (): ĠArrayList < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= ĠArrayList < String >() ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 1 .. 1 2 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . add ( Date Utils . getCurrent Format String ( Date Utils . TYPE _ 1 0 )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġlist ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** Ġèİ·åıĸ æī©å±ķ view Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġget Expand View (): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlinear Layout Ġ= ĠLinearLayout ( getContext ()) ĊĠĠĠĠĠĠĠ Ġlinear Layout . layout Params Ġ= ĠLinearLayout . LayoutParams ( ViewGroup . LayoutParams . WRAP _ CONTENT , ĠViewGroup . LayoutParams . WRAP _ CONTENT ) ĊĠĠĠĠĠĠĠ Ġlinear Layout . orientation Ġ= ĠLinearLayout . HORIZONTAL ĊĠĠĠĠĠĠĠ Ġval Ġanim Tv Ġ= Ġget TextView ( R . string . rv anim _ anim )// åĬ¨çĶ» ĊĠĠĠĠĠĠĠ Ġanim Tv . setOnClickListener Ġ{ Ġview Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Anim Popup Window ( view ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġlinear Layout . addView ( anim Tv , ĠViewGroup . LayoutParams . WRAP _ CONTENT , ĠViewGroup . LayoutParams . WRAP _ CONTENT ) ĊĊĠĠĠĠĠĠĠ Ġval Ġreset Tv Ġ= Ġget TextView ( R . string . rv anim _ reset )// éĩį ç½® ĊĠĠĠĠĠĠĠ Ġreset Tv . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Binding . re cyclerView . scrollTo Position ( 0 )// æ»ļ åĬ¨ åĪ° é¡¶ éĥ¨ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Adapter . reset Item Anim Position () // éĩį ç½® æķĪæŀľ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġlinear Layout . addView ( reset Tv , ĠViewGroup . LayoutParams . WRAP _ CONTENT , ĠViewGroup . LayoutParams . WRAP _ CONTENT ) ĊĠĠĠĠĠĠĠ Ġreturn Ġlinear Layout ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** Ġèİ·åıĸ TextView Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġget TextView (@ String Res Ġres Id : ĠInt ): ĠTextView Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtv Ġ= ĠTextView ( getContext ()) ĊĠĠĠĠĠĠĠ Ġtv . setText ( res Id ) ĊĠĠĠĠĠĠĠ Ġtv . set Padding ( dp 2 px ( 6 ), Ġ 0 , Ġdp 2 px ( 6 ), Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġtv . setTextColor ( Color . WHITE ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtv ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** Ġ æĺ¾ç¤º åĬ¨çĶ» çļĦ Popup Window Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġshow Anim Popup Window ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpopup Window Ġ= ĠAnim Popup Window ( getContext ()) ĊĠĠĠĠĠĠĠ Ġpopup Window . create () ĊĠĠĠĠĠĠĠ Ġpopup Window . set Anim Type ( m Anim Type ) ĊĠĠĠĠĠĠĠ Ġpopup Window . get Popup (). show As DropDown ( view , Ġ- 5 0 , Ġ 2 0 ) ĊĠĠĠĠĠĠĠ Ġpopup Window . setOnClickListener Ġ{ Ġpopup , Ġtype Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Anim Type Ġ= Ġtype ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( type Ġ== ĠAnim Popup Window . TYPE _ CUSTOM ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Adapter . set Base Animation ( Scale Alpha In Animation ()) // è®¾ç½® èĩªå®ļä¹ī çļĦ æ· ¡ åħ¥ ç¼© æĶ¾ æķĪæŀľ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpopup . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ setOnClickListener ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Adapter . set Base Animation ( null )// Ġ åıĸæ¶Ī èĩªå®ļä¹ī åĬ¨çĶ» æķĪæŀľ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Adapter . set Animation Type ( m Anim Type ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpopup . dismiss () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }