package Ġaf kt . project . ui . adapter . mult it ype Ċ Ċ import Ġaf kt . project . R Ċ import Ġaf kt . project . databinding . Adapter Concat Banner Binding Ċ import Ġaf kt . project . databinding . Adapter Concat Banner Image Binding Ċ import Ġaf kt . project . model . bean . Banner Bean Ċ import Ġaf kt . project . model . bean . Banner Bean Item Ċ import Ġaf kt . project . util . Project Utils Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . lifecycle . Lifecycle Owner Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . dr ake et . mult it ype . Item View Binder Ċ import Ġcom . yout h . banner . adapter . Banner Adapter Ċ import Ġcom . yout h . banner . indicator . Circle Indicator Ċ import Ġdev . base . adapter . Dev Base View Binding VH Ċ import Ġdev . base . adapter . new Binding ViewHolder Ċ import Ġdev . engine . image . Dev Image Engine Ċ Ċ /** Ċ Ġ* Ġdetail : ĠBanner ĠAdapter Ċ Ġ* Ġ@ author ĠT tt Ċ Ġ*/ Ċ class ĠBanner Item View Binder ( ĊĠĠĠ Ġval Ġowner : ĠLifecycle Owner Ċ ) Ġ: ĠItem View Binder < Banner Bean Item , ĠDev Base View Binding VH < Adapter Concat Banner Binding >>() Ġ{ ĊĊĠĠĠ Ġvar Ġcontext : ĠContext ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġparent : ĠViewGroup ĊĠĠĠ Ġ): ĠDev Base View Binding VH < Adapter Concat Banner Binding > Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext Ġ= Ġparent . context ĊĠĠĠĠĠĠĠ Ġreturn Ġnew Binding ViewHolder ( parent , ĠR . layout . adapter _ concat _ banner ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( ĊĠĠĠĠĠĠĠ Ġholder : ĠDev Base View Binding VH < Adapter Concat Banner Binding >, ĊĠĠĠĠĠĠĠ Ġitem : ĠBanner Bean Item ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . binding . vid Ac b Banner . setAdapter ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠBanner Adapter < Banner Bean , ĠBanner ViewHolder >( item . obj ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonCreate Holder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent : ĠViewGroup , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview Type : ĠInt ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ): ĠBanner ViewHolder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠBanner ViewHolder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAdapter Concat Banner Image Binding . inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( parent . context ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent , Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon BindView ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder : ĠBanner ViewHolder , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata : ĠBanner Bean , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġposition : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsize : ĠInt ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDev Image Engine . get Engine (). display ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . binding . vid Ac bi Ig view , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . imageUrl , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProject Utils . round Config 1 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ). add Banner Lifecycle Observer ( owner ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. indicator Ġ= ĠCircle Indicator ( context ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠBanner ViewHolder ( val Ġbinding : ĠAdapter Concat Banner Image Binding ) Ġ: ĠRecyclerView . ViewHolder ( ĊĠĠĠĠĠĠĠ Ġbinding . root ĊĠĠĠ Ġ) Ċ }