@ file : Suppress (" Unused Import ") Ċ Ċ package Ġcom . nek 1 2 . android utils . databinding . recyclerview Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . annotation . Layout Res Ċ import Ġandroidx . databinding . Data Binding Util Ċ import Ġandroidx . databinding . ViewData Binding Ċ import Ġandroidx . lifecycle . Lifecycle Owner Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . nek 1 2 . android utils . databinding . BR Ċ Ċ /** Ċ Ġ* ĠThe Ġgeneric Ġdatab ind ing ĠViewHolder Ġclass Ġthat Ġis Ġused Ġinternally Ġin Ġthe Ġlibrary . Ċ Ġ* ĠThis Ġclass Ġis Ġcreated Ġand Ġmanaged Ġinternally . ĠWhat Ġyou 're Ġsearching Ġfor Ġis Ġ[ Item ] Ġprobably . Ċ Ġ* ĠYou Ġshould Ġalmost Ġnever Ġbe Ġrequired Ġto Ġsomehow Ġoperate Ġon Ġthat Ġclass Ġexcept Ġwhen Ġyou Ġwant Ġto Ċ Ġ* Ġget Ġthe Ġ[ binding ] Ġfield . Ċ Ġ* Ċ Ġ* Ġ** Remember Ġthat Ġthis Ġholder Ġoper ates Ġon Ġprem ise Ġthat Ġthe Ġvariable Ġin Ġyour Ġlayout Ġxml Ġfor Ġthe Ċ Ġ* Ġitem Ġis Ġcalled Ġexactly Ġ" data " Ġand Ġthe Ġtype Ġis Ġof Ġthe Ġfirst Ġtype Ġargument Ġfor Ġyour Ġ[ Item ] Ġclass Ċ Ġ* Ġimplementation Ġ( i . e . Ġthe Ġtype Ġof Ġthe Ġ" data " Ġfield ). ** Ċ Ġ*/ Ċ class ĠBase Holder ( val Ġbinding : ĠView Data Binding , Ġprivate Ġval Ġbr Variable : ĠInt Ġ= ĠBR . data ): ĊĠĠĠ ĠRecyclerView . ViewHolder ( binding . root ) Ġ{ ĊĊĠĠĠ Ġfun Ġbind ( item : ĠItem < *, Ġ* >) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( item . data Ġ!= ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . set Variable ( br Variable , Ġitem . data ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . execute Pending Bindings () ĊĠĠĠĠĠĠĠ Ġitem . try Bind ( binding , Ġbinding Adapter Position ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġinline Ġfun Ġ< re ified ĠT : ĠView Data Binding > Ġinf late ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparent : ĠViewGroup , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Layout Res Ġlayout : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlifecycle Owner : ĠLifecycle Owner ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbr Variable : ĠInt Ġ= ĠBR . data ĊĠĠĠĠĠĠĠ Ġ): ĠBase Holder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlayout Inflater Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbinding : ĠT ? Ġ= ĠData Binding Util . inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Inflater , Ġlayout , Ġparent , Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequire NotNull ( binding ) Ġ{ Ġ" Couldn 't Ġinf late Ġbinding , Ġcheck Ġyour Ġlayout ĠID : Ġ$ layout " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . lifecycle Owner Ġ= Ġlifecycle Owner ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠBase Holder ( binding , Ġbr Variable ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ