/* Ċ Ġ* ĠCopyright Ġ 2 0 1 8 ĠN az mul ĠI dr is . ĠAll Ġrights Ġreserved . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġengineering . ux d . example . f alcon . ast udy in recyclerview Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġandroid . support . v 7 . widget . Divider Item Decoration Ċ import Ġandroid . support . v 7 . widget . Linear LayoutManager Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . TextView Ċ import Ġorg . jetbrains . ank o . design . sn ackbar Ċ import Ġorg . jetbrains . ank o . find Ċ import Ġorg . jetbrains . ank o . layout Inflater Ċ import Ġorg . jetbrains . ank o . sdk 2 5 . coroutines . onClick Ċ import Ġorg . jetbrains . ank o . toast Ċ Ċ class ĠVertical List Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġval Ġm Data Ġ= Ġstatic Data . toList () ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ vertical _ list ) ĊĠĠĠĠĠĠĠ Ġfind < RecyclerView >( R . id . rv _ vertical _ list _ container ). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsetup ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsetup ( re cyclerView : ĠRecyclerView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠSet Ġlayout Ġmanager ĊĠĠĠĠĠĠĠ Ġre cyclerView . layout Manager Ġ= ĠLinearLayoutManager ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLinearLayoutManager . VERTICAL , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ// ĠSet Ġadapter ĊĠĠĠĠĠĠĠ Ġre cyclerView . adapter Ġ= ĠData Adapter ( object Ġ: ĠItem ClickListener < String > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonClick ( item : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoast ( getString ( R . string . list _ orientation )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsn ackbar ( find < View >( android . R . id . content ), Ġitem ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ// ĠSet Ġdecoration ĊĠĠĠĠĠĠĠ Ġre cyclerView . addItem Decoration ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDiv ider Item Decoration ( this , ĠDiv ider Item Decoration . VERTICAL )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġinner Ġclass ĠData Adapter ( val Ġclick Listener : ĠItem ClickListener < String >) Ġ: ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRecyclerView . Adapter < Row ViewHolder >() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// ĠRecyclerView . Adapter Ġimplementation ĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġm Data . size ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠRow ViewHolder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparent . context . layout Inflater . inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . layout . item _ vertical _ list _ row , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠRow ViewHolder ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠRow ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . bind To Data Item ( m Data [ position ], Ġclick Listener ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠViewHolder Ġ( row Ġrenderer ) Ġimplementation ĊĠĠĠ Ġprivate Ġclass ĠRow ViewHolder ( item View : ĠView ) Ġ: ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRecyclerView . ViewHolder ( item View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrow Text : ĠTextView ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow Text Ġ= ĠitemView . find ( R . id . text _ vertical _ list _ row ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġbind To Data Item ( data : ĠString , Ġclick Listener : ĠItem ClickListener < String >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow Text . text Ġ= Ġdata ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow Text . onClick Ġ{ Ġclick Listener . onClick ( item Ġ= Ġdata ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠClick Ġhandler Ġ( more Ġinfo : Ġhttps :// goo . gl / on 7 MD d ) ĊĠĠĠ Ġinterface ĠItem ClickListener < T > Ġ{ ĊĠĠĠĠĠĠĠ Ġfun ĠonClick ( item : ĠT ) ĊĠĠĠ Ġ} Ċ Ċ }