Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.drakeet.multitype
- import android.view.LayoutInflater
- import android.view.View
- import android.view.ViewGroup
- import androidx.recyclerview.widget.RecyclerView
- import kotlinx.android.extensions.LayoutContainer
- import me.drakeet.multitype.ItemViewBinder
- abstract class InflateViewBinder<T : Any> : ItemViewBinder<T, InflateViewHolder<T>>() {
- abstract val layoutId: Int
- open fun InflateViewHolder<T>.onCreated() {}
- abstract fun InflateViewHolder<T>.onBind()
- override fun onCreateViewHolder(
- inflater: LayoutInflater,
- parent: ViewGroup
- ): InflateViewHolder<T> {
- val view = inflater.inflate(layoutId, parent, false)
- val viewHolder = InflateViewHolder<T>(view)
- viewHolder.onCreated()
- return viewHolder
- }
- override fun onBindViewHolder(holder: InflateViewHolder<T>, item: T) {
- holder.item = item
- holder.onBind()
- }
- }
- class InflateViewHolder<T : Any>(override val containerView: View) :
- RecyclerView.ViewHolder(containerView),
- LayoutContainer {
- lateinit var item: T
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement