package Ġcom . tencent . f skin . demo . base . adapter Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . support . annotation . Id Res Ċ import Ġandroid . support . annotation . Layout Res Ċ import Ġandroid . support . v 7 . widget . Linear LayoutManager Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup ĊĊ Ċ /** Ċ Ġ* Ġ ä¸Ģä¸ª å¿« æį · çļĦ åĪĽå»º Adapter çļĦ ç±» Ċ Ġ* Ċ Ġ* Ġ@ author Ġfort une Ċ Ġ*/ Ċ open Ġclass ĠQuick Adapter < T > ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġcontext ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġdata Ġæķ°æį® åĪĹè¡¨ ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġitem Layout Id ĠItem Layout Id ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġbind Data Ġæķ°æį® ç»ĳå®ļ åĪ° Item View ä¸Ĭ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġconstructor ( context : ĠContext , Ġdata : ĠList < T >, Ġ@ Layout Res Ġprivate Ġvar Ġitem Layout Id : ĠInt , Ġprivate Ġvar Ġbind Data : Ġ(( position : ĠInt , Ġdata : ĠT , ĠitemView : ĠView ? )-> Unit )? Ġ= Ġnull ) Ġ: ĠBase ViewType Adapter < T >( context , Ġdata ) Ġ{ ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġset ViewType ViewHolder Hook ( object Ġ: ĠBase ViewType Adapter . Abs ViewType ViewHolder Hook < T >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon View Hold Post Create ( holder : ĠView Type ViewHolder < T > ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder ?. set ContentView ( item Layout Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon ViewHolder Bind Data ( holder : ĠView Type ViewHolder < T > ?, Ġdata : ĠT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbind Data ( data , Ġholder ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġopen Ġfun Ġbind Data ( data : ĠT , ĠviewHolder : ĠView Type ViewHolder < T > ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġbind Data ?. invoke ( view Holder ?. current Bind Position Ġ?: Ġ 0 , Ġdata , ĠviewHolder ?. item View ) ĊĠĠĠ Ġ} ĊĊĊĊĠĠĠ Ġfun Ġget View By Position ( re cyclerView : ĠRecyclerView ?, Ġposition : ĠInt , Ġ@ Id Res Ġview Id : ĠInt ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġre cyclerView ?. find ViewHolder For Layout Position ( position )?. item View ?. findViewById ( view Id ) ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ /** Ċ Ġ* Ġ å¿«éĢŁ ç»Ļ RecyclerView è®¾ç½® ä¸Ģ ç»Ħ æķ°æį® Ċ Ġ*/ Ċ fun Ġ< T > ĠRecyclerView . quick Adapter ( data : ĠList < T >, Ġ@ Layout Res Ġitem Layout Id : ĠInt , Ġbind Data : Ġ(( pos : ĠInt , Ġdata : ĠT , ĠitemView : ĠView ? )-> Unit )? Ġ= Ġnull ): ĠRecyclerView . Adapter < *> ? Ġ{ ĊĊĠĠĠ Ġthis . adapter Ġ= ĠQuick Adapter ( ĊĠĠĠĠĠĠĠ Ġcontext Ġ= Ġcontext , ĊĠĠĠĠĠĠĠ Ġdata Ġ= Ġdata , ĊĠĠĠĠĠĠĠ Ġitem Layout Id Ġ= Ġitem Layout Id , ĊĠĠĠĠĠĠĠ Ġbind Data Ġ= Ġbind Data ) ĊĊĠĠĠ Ġlayout Manager Ġ= Ġobject Ġ: ĠLinearLayoutManager ( context ) Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġgenerate Default LayoutParams (): ĠRecyclerView . LayoutParams Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠRecyclerView . LayoutParams ( ViewGroup . LayoutParams . MATCH _ PARENT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠViewGroup . LayoutParams . WRAP _ CONTENT ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġthis . adapter Ċ }