Можно ли получить просмотрщик / просмотр списка для перехода на разные экраны? - PullRequest
0 голосов
/ 10 апреля 2020

Итак, я видел много Kotlin уроков по программе recyclerview, однако все они, похоже, основаны на обзорах предметов / списках контактов, которые все выводят вас на один и тот же экран при выборе, хотя и с другим содержимым держателей просмотров. Мне было интересно, можно ли использовать для навигации автономный просмотр / просмотр списка переработчика вместо ящика навигации, который не подходит для обширных каталогов. И если да, есть ли какие-нибудь учебники для этого?

По сути, что-то вроде this :

1 Ответ

0 голосов
/ 11 апреля 2020

В вашем адаптере вы можете установить тег для каждого представления в вашем RecyclerView в onBindViewHolder, а в прослушивателе щелчков вы можете получить тег и действовать в соответствии с тем, какой это тег.

Вы можете сделать Ваш адаптер RecyclerView расширяет View.onClickListener

override fun onBindViewHolder(holder: OpportunityViewHolder, position: Int) {
  // Differentiate between items by having a base class that you implement for your different items
  val item = getItem(position)
  item.tag = when(item) {
    is ThisThing -> "thisThing"
    is ThatThing -> "thatThing"
    is AnotherThing -> "anotherThing"
  }
}

override fun onClick(v: View) {
  when(v.tag) {
    "thisThing" -> // do something
    "thatThing" -> // something else... 
}

Конечно, вы, возможно, захотите использовать перечисление для возможностей тега или постоянных значений, или даже использовать имена классов

enum class Tag {
  THIS_THING, THAT_THING...
}

companion object {
  private const val THIS_THING = "THIS_THING"
  ...
}

// Inside classes
companion object {
  val name = ThisThing::class.simpleName
  ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...