我开始使用环氧树脂库,因为我正在寻找一个库来在使用RecyclerView
组件时编写更少的代码。
这EpoxyRecyclerView
似乎是一个很棒的组件,因为您可以简单地给出模型(基本上是一个简单的列表),这要归功于该setModels
方法。
问题 1
第一个问题是:是否可以在@AutoModel
不使用控制器的情况下自动为模型设置 id(使用?)?
例如,我有以下DataBindingEpoxyModel
课程:
@EpoxyModelClass(layout = R.layout.item_header)
abstract class HeaderModel
: DataBindingEpoxyModel()
{
@StringRes
@EpoxyAttribute
var title: Int? = null
}
我在我的Fragment
:
val models = mutableListOf<EpoxyModel<*>>()
models.add(HeaderModel_().title(R.string.catalogue_header_categories_title)
// [...]
recyclerView?.setModels(models)
此代码崩溃,因为我没有设置id
实例HeaderModel_()
。AutoModel
注释只能在字段上使用,那么有没有办法在没有控制器的情况下自动为我的模型实例设置一个 id ?
问题2
第二个问题是:是否可以在不使用控制器的情况下处理点击?
使用问题1的代码,如何处理对布局的几个小部件的点击(在我的例子中,点击TextView
或点击itemView
)?有没有办法覆盖所使用的持有人DataBindingEpoxyModel
,以便直接处理点击进入持有人?
就我而言,我不想将 定义OnClickListener
为 my 的属性,HeaderModel
因为我想为该类型的所有模型定义相同的行为HeaderModel
(不使用控制器)。
提前感谢您的帮助!
编辑:我找到了问题 2 的答案。我只需要覆盖bind
. DataBindingEpoxyModel
但是我没有找到一种方法来自动将 id 设置为没有控制器和@AutoModel
注释的模型。