Skip to content

Instantly share code, notes, and snippets.

@longv
Created November 3, 2019 09:32
Show Gist options
  • Save longv/9ba600e8cdf6cdf72e2d5ec93ddfb009 to your computer and use it in GitHub Desktop.
Save longv/9ba600e8cdf6cdf72e2d5ec93ddfb009 to your computer and use it in GitHub Desktop.
Binding attributes for data binding RecyclerView
package me.longv.pokedex.databinding
import androidx.databinding.BindingAdapter
import androidx.recyclerview.widget.RecyclerView
@BindingAdapter(value = ["model"])
fun setupRecyclerView(view: RecyclerView, model: RecyclerViewModel?) {
model?.apply {
view.adapter = DataBindingAdapter(bindingEntries)
view.layoutManager = layoutManager
itemDecoration?.apply {
view.addItemDecoration(this)
}
}
}
package me.longv.pokedex.databinding
import androidx.recyclerview.widget.RecyclerView
data class RecyclerViewModel(val layoutManager: RecyclerView.LayoutManager,
val itemDecoration: RecyclerView.ItemDecoration? = null,
val bindingEntries: List<DataBindingEntry> = emptyList())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment