Esegui la migrazione dai sintetici di Kotlin all'associazione della vista Jetpack

Le estensioni Android Kotlin sono deprecate, il che significa che l'utilizzo dei sintetici Kotlin per l'associazione delle visualizzazioni non è più supportato. Se la tua app utilizza sintetici Kotlin per l'associazione delle viste, utilizza questa guida per eseguire la migrazione all'associazione delle viste Jetpack.

Se la tua app non utilizza già i sintetici Kotlin per l'associazione delle viste, consulta Associazione delle visualizzazioni per informazioni di base sull'utilizzo.

Aggiornare il file Gradle

Come per le estensioni Android, l'associazione delle visualizzazioni Jetpack è abilitata modulo per modulo. Per ogni modulo che utilizza l'associazione di visualizzazione, imposta l'opzione di build viewBinding su true nel file build.gradle a livello di modulo:

Trendy

android {
    ...
    buildFeatures {
        viewBinding true
    }
}

Kotlin

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

Se la tua app non utilizza le funzionalità di Parcelable, rimuovi la riga che attiva le estensioni Android di Kotlin:

Trendy

plugins {
  id 'kotlin-android-extensions'
}

Kotlin

plugins {
    kotlin("android.extensions")
}

Per scoprire di più sull'attivazione dell'associazione di visualizzazioni in un modulo, consulta le istruzioni di configurazione.

Aggiorna classi di attività e di frammenti

Con l'associazione della vista Jetpack, viene generata una classe di associazione per ogni file di layout XML contenuto nel modulo. Il nome di questa classe di associazione è il nome del file XML in formato Pascal con la parola Binding alla fine. Ad esempio, se il nome del file di layout è result_profile.xml, il nome della classe di associazione generata è ResultProfileBinding.

Per utilizzare le classi di associazione generate anziché le proprietà sintetiche per le viste di riferimento, modifica le classi di attività e di frammenti nel seguente modo:

  1. Rimuovi tutte le importazioni da kotlinx.android.synthetic.

  2. Aumenta un'istanza della classe di associazione generata per l'attività o il frammento da utilizzare.

  3. Modifica tutti i riferimenti alle viste in modo da utilizzare l'istanza della classe di associazione anziché le proprietà sintetiche:

// 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

Per scoprire di più, consulta la sezione Utilizzo nella guida all'associazione di visualizzazioni.