Created
November 11, 2019 08:09
-
-
Save alaershov/a63445a9dc5e6af7e80df412c1ef05c2 to your computer and use it in GitHub Desktop.
Delegate comparison
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Ханнес | |
fun movieCell(listener : (Movie) -> Unit) = adapterDelegateLayoutContainer<Movie, RecyclerItem>(R.layout.item_movie) { | |
itemView.setClickListener { listener.invoke(item) } | |
bind { diffPayloads -> | |
name.text = item.name | |
} | |
} | |
// Антон | |
object MovieCell : Cell<RecyclerItem>() { | |
override fun belongsTo(item: RecyclerItem?): Boolean { | |
return item is Movie | |
} | |
override fun type(): Int { | |
return R.layout.item_movie | |
} | |
override fun holder(parent: ViewGroup):RecyclerView.ViewHolder { | |
return MovieViewHolder(parent.viewOf(type())) | |
} | |
override fun bind( | |
holder: RecyclerView.ViewHolder, | |
item: RecyclerItem?, | |
listener: AdapterListener? | |
) { | |
if (holder is MovieViewHolder && item is Movie) { | |
holder.bind(item) | |
holder.itemView.setOnClickListener { | |
listener?.listen(item) | |
} | |
} | |
} | |
} | |
class MovieViewHolder { | |
... | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment