Bevor Kotlin, sollte Android-Entwickler Verweis auf die wie diese Ansichten in einem Variablen Aktivitäten speichern:Kotlin Android Erweiterungen und Variablen
Button fooBtn = (Button) findViewById(R.id.btn_foo)
die Höhe des Kesselblech Code und die Anzahl der findViewById
Anrufe zu reduzieren .
Mit der Einführung der Kotlin's Android Extensions wir die gleiche Taste, indem einfach verweisen können:
btn_foo
Fragen:
- Hat die
btn_foo
hat einen Verweis auf die Taste gespeichert oder ruft es jedes MalfindViewById
an? - Denken Entwickler noch, Variablen zu verwenden, um
btn_foo
zu speichern, um die Leistung der Anwendung zu verbessern, oder einfach direkt im Code zu verwenden?
Edit: es an explanation ist, wie Erweiterungen arbeiten, aber es ist immer noch ein wenig unklar.
Warum nur auf "Aktivitäten" und "Fragmente" beschränkt? Weil sie einen einfachen Zugang zu "Context" haben? – Tuby
@Tuby könnte es mit dem 'Kontext' und der Art und Weise zusammenhängen, wie Kotlin Erweiterungsfunktionen erstellt (https://kotlinlang.org/docs/tutorials/android-plugin.html#under-the-hood). Es gibt eine GitHub PR, die das Problem anspricht und es für die Verwendung von KAE für Elemente wie einen 'ViewHolder' (https://github.com/Kotlin/KEEP/pull/33) verfügbar macht. Es ist jedoch seit einem Jahr inaktiv. – Oleg
Mit der richtigen Verwendung der Google Data Binding-Bibliothek und des MVVM-Musters ist auch kein 'findViewById' erforderlich. Ich warte persönlich darauf, dass die Architekturkomponenten stabil werden, und implementiert Datenbindungen. Danach werde ich mein Projekt verschieben, um es zu verwenden. – Oleg