Von Kotlin-Syntax zur Jetpack-Ansichtsbindung migrieren

Kotlin-Android-Erweiterungen wurden eingestellt. Das bedeutet, dass die Verwendung von Kotlin Synthetik für die Ansichtsbindung wird nicht mehr unterstützt. Wenn Ihre App Kotlin verwendet für die Ansichtsbindung verwenden möchten, verwenden Sie diese Anleitung, um zur Jetpack-Ansichtsbindung zu migrieren.

Wenn in Ihrer App noch keine Kotlin-Synthetik verwendet wird, finden Sie weitere Informationen unter Ansicht binding für grundlegende Nutzungsinformationen.

Gradle-Datei aktualisieren

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

Cool

android {
    ...
    buildFeatures {
        viewBinding true
    }
}

Kotlin

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

Wenn Ihre App Parcelable nicht verwendet Funktionen zu entfernen, entfernen Sie die Zeile, über die Kotlin-Android-Erweiterungen aktiviert werden:

Cool

plugins {
  id 'kotlin-android-extensions'
}

Kotlin

plugins {
    kotlin("android.extensions")
}

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

Aktivitäts- und Fragmentklassen aktualisieren

Mit der Jetpack-Ansichtsbindung wird für jede XML-Layoutdatei eine Bindungsklasse generiert. die das Modul enthält. Der Name dieser Bindungsklasse ist der Name der XML- Datei mit dem Wort Binding am Ende in der Pascal-Groß-/Kleinschreibung. Wenn beispielsweise Der Name der Layoutdatei lautet result_profile.xml. Dies ist der Name des generierten Bindungsklasse ist ResultProfileBinding.

Um die generierten Bindungsklassen anstelle von synthetischen Eigenschaften zu verwenden, auf Ansichten verweisen, Ihre Aktivitäten und Fragmentklassen ändern, indem Sie die Folgendes:

  1. Entfernen Sie alle Importe aus kotlinx.android.synthetic.

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

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

// 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 zur Nutzung der Bindungsanleitung ansehen.