package Ġcom . think up . sample easy Ċ Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . animation . Animation Utils Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġcom . think up . easy list . Renderer Adapter Ċ import Ġcom . think up . easy list . removeItem Animator Ċ import Ġcom . think up . sample easy . databinding . Activity Renderer List Binding Ċ Ċ class ĠMulti Renderer List Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġbinding : ĠActivity Renderer List Binding ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval Ġadapter Ġ= ĠRenderer Adapter () ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠActivity Renderer List Binding . inflate ( layout Inflater ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( require NotNull ( binding ). root ) ĊĠĠĠĠĠĠĠ Ġprepare List () ĊĠĠĠĠĠĠĠ Ġprepare Refresh () ĊĠĠĠĠĠĠĠ Ġload Items () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġprepare List () Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding ?. sample List ?. layout Manager Ġ= ĠLinearLayoutManager ( this ) ĊĠĠĠĠĠĠĠ Ġadapter . add Renderer ( Sample Renderer ()) ĊĠĠĠĠĠĠĠ Ġadapter . add Renderer ( Colo red Renderer ( this :: removeItem )) ĊĠĠĠĠĠĠĠ Ġadapter . add Renderer ( String Renderer ()) ĊĠĠĠĠĠĠĠ Ġbinding ?. sample List ?. adapter Ġ= Ġadapter ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġremove Item ( item : ĠAny ) Ġ{ ĊĠĠĠĠĠĠĠ Ġadapter . removeItem Animator ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġre cyclerView Ġ= Ġrequire NotNull ( binding ). sample List , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem Ġ= Ġitem , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġanimation Ġ= ĠAnimation Utils . load Animation ( base Context , ĠR . anim . fade _ out _ right ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġprepare Refresh () Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( binding ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . sample Refresh . is Refresh ing Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . sample Refresh . setColor Scheme Resources ( R . color . color Primary ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . sample Refresh . setOn Refresh Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . sample Refresh . is Refresh ing Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload Items () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload Items () Ġ{ ĊĠĠĠĠĠĠĠ Ġadapter . set Items ( get Initial ()) ĊĠĠĠĠĠĠĠ Ġbinding ?. sample Refresh ?. is Refresh ing Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Initial (): ĠList < Any > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġmutable ListOf < Any >(). apply Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Sample Item (" 1 ", Ġ" Name 1 ", Ġ" Male ", Ġ" Company 1 ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Colo red Item ( Color . BLUE )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Colo red Item ( Color . GREEN )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Sample Item (" 2 ", Ġ" Name 2 ", Ġ" Female ", Ġ" Company 2 ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Sample Item (" 3 ", Ġ" Name 3 ", Ġ" Male ", Ġ" Company 3 ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd (" It 's Ġa ĠString !") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Colo red Item ( Color . MAG ENT A )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd (" It 's Ġa ĠString Ġtoo !") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ