Von Kotlin-Syntax zur Jetpack-Ansichtsbindung migrieren

Die Kotlin-Android-Erweiterungen wurden eingestellt. Das bedeutet, dass die Verwendung von Kotlin-Synthetik für die Ansichtsbindung nicht mehr unterstützt wird. Wenn Ihre Anwendung Kotlin-Synthetiken für die Ansichtsbindung verwendet, verwenden Sie diese Anleitung für die Migration zur Jetpack-Ansichtsbindung.

Wenn in Ihrer App noch keine Kotlin-Syntax für die Ansichtsbindung verwendet wird, finden Sie unter Bindung ansehen grundlegende Informationen zur Nutzung.

Gradle-Datei aktualisieren

Wie bei Android-Erweiterungen wird auch die Jetpack-Ansichtsbindung nach Modul für Modul aktiviert. Legen Sie für jedes Modul, das Ansichtsbindung verwendet, die Build-Option viewBinding in der Datei build.gradle auf Modulebene auf true fest:

Groovig

android {
    ...
    buildFeatures {
        viewBinding true
    }
}

Kotlin

android {
    ...
    buildFeatures {
        viewBinding = true
    }
}

Wenn in Ihrer App keine Parcelable-Funktionen verwendet werden, entfernen Sie die Zeile, mit der die Kotlin-Android-Erweiterungen aktiviert werden:

Groovig

plugins {
  id 'kotlin-android-extensions'
}

Kotlin

plugins {
    kotlin("android.extensions")
}

Weitere Informationen zum Aktivieren der Ansichtsbindung in einem Modul finden Sie unter Einrichtungsanleitung.

Aktivitäts- und Fragmentklassen aktualisieren

Mit der Jetpack-Ansichtsbindung wird für jede im Modul enthaltene XML-Layoutdatei eine Bindungsklasse generiert. Der Name dieser Bindungsklasse ist der Name der XML-Datei in Pascal-Case-Schreibweise mit dem Wort Binding am Ende. Lautet der Name der Layoutdatei beispielsweise result_profile.xml, lautet der Name der generierten Bindungsklasse ResultProfileBinding.

Wenn Sie die generierten Bindungsklassen anstelle von synthetischen Attributen für Verweise auf Ansichten verwenden möchten, ändern Sie die Aktivitäts- und Fragmentklassen so:

  1. Alle Importe aus kotlinx.android.synthetic entfernen.

  2. Binden Sie eine Instanz der generierten Bindungsklasse für die zu verwendende Aktivität oder das zu verwendende Fragment auf.

  3. Ändern Sie alle Ansichtsverweise so, dass die Bindungsklasseninstanz anstelle von synthetischen Attributen verwendet wird:

// Reference to "name" TextView using synthetic properties.
name.text = viewModel.nameString

// Reference to "name" TextView using the binding class instance.
binding.name.text = viewModel.nameString

Weitere Informationen finden Sie im Abschnitt Nutzung im Leitfaden zur Ansichtsbindung.