Эпоксидная смола: как использовать аннотацию @AutoModel и обрабатывать щелчки без контроллера?
Я начинаю использовать библиотеку эпоксидной смолы, потому что я ищу библиотеку, чтобы писать меньше кода при использовании RecyclerView
составная часть.
EpoxyRecyclerView
кажется отличным компонентом, так как вы можете просто дать модели (в основном простой список), благодаря setModels
метод.
Вопрос 1
Первый вопрос: можно автоматически установить идентификатор модели (используя @AutoModel
?) без использования контроллера?
Например, у меня есть следующее 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
аннотации должны использоваться только на поле, так есть ли способ автоматически установить идентификатор для экземпляра моей модели без контроллера?
вопрос 2
Второй вопрос: возможно ли обработать щелчок без использования контроллера?
Используя код вопроса 1, как обрабатывать клик по нескольким виджетам макета (в моем случае клик по TextView
или нажмите на itemView
) Есть ли способ переопределить держатель, используемый DataBindingEpoxyModel
чтобы обработать щелчок прямо в держатель?
В моем случае я не хочу определять OnClickListener
как атрибут моего HeaderModel
потому что я хотел бы определить одинаковое поведение для всех моделей типа HeaderModel
(без использования контроллера).
Заранее спасибо за помощь!
0 ответов
Вот ответ от github-репо на первый вопрос:
Невозможно автоматически установить идентификатор (кроме автомодели, который я бы не рекомендовал в наши дни) - вы всегда должны устанавливать идентификатор вручную для каждой модели. Лучше всего сделать это, установив удобочитаемую строку. Это подробно описано в вики