epoxy
epoxy copied to clipboard
View binding with EpoxyModelWithHolder
I am using EpoxyModelWithHolder with multiple layouts in a single Epoxy model class. How can I do ViewBinding? Currently, I am using Kotlin-android-extensions. Below is my code
@EpoxyModelClass
abstract class ItemSampleEpoxyModel : EpoxyModelWithHolder<ItemSampleEpoxyHolder>() {
@EpoxyAttribute
var itemSampleShelf: ComponentFactoryLanderPagesHeroShelf.ComponentLanderPageHeroShelf.ItemLanderPageHeroShelf? =
null
override fun getDefaultLayout() =
when {
itemSampleShelf?.heroStyle == "Project" -> {
R.layout.item_project_sample
}
itemSampleShelf?.shelfItemType == "Course" -> {
R.layout.item_course_sample
}
else -> {
R.layout.item_sample
}
}
override fun bind(itemHolder: ItemSampleEpoxyHolder) {
itemHolder.titleView.text = itemSampleShelf?.title
} }
class ItemSampleEpoxyHolder : EpoxyHolder() {
lateinit var titleView: AppCompatTextView
override fun bindView(itemView: View) {
titleView = itemView.tv_title
}}