2017-11-03 1 views
1

Die Kotlin Android extension documentation besagt, dass Sie im Prinzip eine Verknüpfung von findViewById() mithilfe einer Importanweisung ausführen können. Was ist jedoch der Unterschied zwischen dem Importieren einer bestimmten Ansicht kotlinx.android.synthetic.main.<layout-file-name>.<view-id> und dem Importieren von kotlinx.android.synthetic.main.<layout-file-name>.view.<view-id>? Wenn Sie das erstere tun, zeigt mir die IDE drei gleiche Ansichts-IDs, jeweils eine für Aktivität, Dialog und Fragment. Wenn Sie Letzteres ausführen, wird nur einmal der Name der Ansichts-ID angezeigt.Kotlin synthetische Eigenschaft Unterschied für Android-Ansichten?

Antwort

0

Die IDE-Hinweise zeigen die Klassentypen an, in denen Sie die Ansichtsreferenz verwenden können: Aktivität, Fragment, Dialog oder Ansicht. Wenn Sie die import-Anweisung eingeben, zeigt die IDE die Fertigstellung für alle Typen an, für die sie verfügbar ist. Wenn Sie jedoch versuchen, es innerhalb der Klasse (ohne die import-Anweisung) zu verwenden, zeigt Ihnen die IDE den Importhinweis für den spezifischen Typ an, den Ihre Klasse erweitert.

Zum Beispiel, in einer Aktivitätsklasse, erstreckt AppCompatActivity, Sie bekommen Import Hinweis

<view-id> from <layout-file-name> for Activity

Allerdings, wenn Ihre Klasse von View oder Subklassen erstreckt, können Sie diese:

<view-id> from <layout-file-name> for View

In Anbetracht der Tatsache, dass es mehrere Auswahlmöglichkeiten gibt, kann die Implementierung von View-Caching für verschiedene Typen unterschiedlich sein. More on this here

Verwandte Themen