Оптимальный способ объявить адаптер для RecyclerView - PullRequest
0 голосов
/ 27 июня 2019

У меня работает recyclerView (id = myList), но у меня есть вопрос о том, как правильно и оптимально объявить RecyclerView:

val myRecycler = findViewById<RecyclerView>(R.id.myList)
myRecycler.layoutManager = LinearLayoutManager(this)
myRecycler.adapter = CustomAdapter(items)

Или так:

myList.layoutManager = LinearLayoutManager(this)
myList.adapter = CustomAdapter(items)

У меня оба случая работают правильно, во втором случае использовать findViewById не обязательно. Что лучше?

Ответы [ 2 ]

1 голос
/ 27 июня 2019

Kotlin помогает разработчику написать краткий код, не влияя на его читабельность. Поэтому разработчику больше не нужно беспокоиться о написании стандартного кода.

Добавив это:

apply plugin: 'kotlin-android-extensions'

в сборке для приложения, kotlin может автоматически определить идентификатор представления для вас, чтобы вам больше не приходилось писать "findViewById".

Итак, более простой способ написания вышеприведенного фрагмента кода:

myList.apply {
    layoutManager = LinearLayoutManager(this)
    adapter = CustomAdapter(items)
}

(Примечание: «kotlin-android-extensions» делает гораздо больше, чем просто автоматический поиск идентификатора вида, просто обратитесь к Kotlin Android Extensions для всех его функций.)

1 голос
/ 27 июня 2019

Не могу сказать точно, но я полагаю, что они равны или почти равны в потреблении ресурсов устройства.Как вы знаете, современные устройства намного мощнее по сравнению со старыми 4-5-летними устройствами, поэтому многие разработчики предпочитают более простой и короткий код, даже если он немного менее эффективен.Для меня этот код является лучшим:

myList.layoutManager = LinearLayoutManager(this)
myList.adapter = CustomAdapter(items)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...