Эпоксидная смола: как использовать аннотацию @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-репо на первый вопрос:

Невозможно автоматически установить идентификатор (кроме автомодели, который я бы не рекомендовал в наши дни) - вы всегда должны устанавливать идентификатор вручную для каждой модели. Лучше всего сделать это, установив удобочитаемую строку. Это подробно описано в вики

Другие вопросы по тегам