package Ġcom . pand ul ape ter . be agle . app Demo . feature . main . examples . list Ċ Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . pand ul ape ter . be agle . app Demo . data . model . Case Study Ċ import Ġcom . pand ul ape ter . be agle . app Demo . databinding . Item Examples Case Study Binding Ċ import Ġcom . pand ul ape ter . be agle . app Demo . feature . shared . list . Base ViewHolder Ċ import Ġcom . pand ul ape ter . be agle . utils . extensions . in flater Ċ Ċ class ĠCase Study ViewHolder Ġprivate Ġconstructor ( ĊĠĠĠ Ġbinding : ĠItem Examples Case Study Binding , ĊĠĠĠ Ġon ItemSelected : Ġ( Ui Model ) Ġ-> ĠUnit Ċ ) Ġ: ĠBase ViewHolder < Item Examples Case Study Binding , ĠCase Study ViewHolder . Ui Model >( binding ) Ġ{ ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . root . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( binding Adapter Position Ġ!= ĠRecyclerView . NO _ POSITION ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . ui Model ?. let ( on ItemSelected ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġdata Ġclass ĠUi Model ( ĊĠĠĠĠĠĠĠ Ġval Ġcase Study : ĠCase Study ĊĠĠĠ Ġ) Ġ: ĠExamples ListItem Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġid Ġ= Ġcase Study . id ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġcreate ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparent : ĠViewGroup , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon ItemSelected : Ġ( Ui Model ) Ġ-> ĠUnit ĊĠĠĠĠĠĠĠ Ġ) Ġ= ĠCase Study ViewHolder ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding Ġ= ĠItem Examples Case Study Binding . inflate ( parent . in flater , Ġparent , Ġfalse ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon ItemSelected Ġ= Ġon ItemSelected ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ }