Я пытаюсь найти лучший способ сделать Android View Binding в Kotlin. Кажется, есть несколько вариантов:
findViewById
val button: Button by lazy { findViewById<Button>(R.id.button) }
нож для масла
https://github.com/JakeWharton/butterknife
@BindView(R.id.button) lateinit var button: Button
Расширения Android Kotlin
https://kotlinlang.org/docs/tutorials/android-plugin.html
import kotlinx.android.synthetic.main.activity_main.*
Я хорошо знаком с findViewById и Butterknife в java land, но каковы плюсы и минусы каждого подхода к привязке к каждому виду в Kotlin?
Поддерживает ли Kotlin Android Extensions хорошо с шаблоном RecyclerView + ViewHolder?
Также как Kotlin Android Extensions обрабатывает привязку вида для вложенных представлений через include
?
ex: для Activity с использованием activity_main.xml
, как бы получить доступ к View custom1
?
activity_main.xml
<...>
<include layout="@layout/custom" android:id="@+id/custom" />
</>
custom.xml
<...>
<View android:id="@+id/custom1" ... />
<View android:id="@+id/custom2" ... />
</>