從 Kotlin 合成項目遷移至 Jetpack 檢視區塊繫結

Kotlin Android 擴充功能已淘汰,也就是說使用 Kotlin 不再支援檢視區塊繫結的合成資料。如果應用程式使用 Kotlin 檢視區塊繫結的合成功能,請參閱本指南,以便遷移至 Jetpack View 繫結。

如果應用程式尚未使用 Kotlin 合成項目執行檢視區塊繫結,請參閱「View 繫結等基本用法。

更新 Gradle 檔案

和 Android 擴充功能一樣,Jetpack 檢視區塊繫結也會在個別模組中啟用 。針對每個使用檢視區塊繫結的模組,設定 viewBinding 版本 模組層級 build.gradle 檔案中 true 的選項:

Groovy

android {
    ...
    buildFeatures {
        viewBinding true
    }
}

Kotlin

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

如果應用程式未使用 Parcelable 功能,請移除啟用 Kotlin Android 擴充功能的那一行:

Groovy

plugins {
  id 'kotlin-android-extensions'
}

Kotlin

plugins {
    kotlin("android.extensions")
}

如要進一步瞭解如何在模組中啟用檢視區塊繫結,請參閱「設定」一文 操作說明

更新活動和片段類別

使用 Jetpack 檢視區塊繫結時,系統會為每個 XML 版面配置檔案產生繫結類別 該模組包含的項目此繫結類別的名稱是 XML 的名稱 檔案,並在結尾加上 Binding 字詞。舉例來說 版面配置檔案名稱為 result_profile.xml,也就是產生的名稱 繫結類別為 ResultProfileBinding

如要使用產生的繫結類別 (而非合成屬性) 來 來變更活動和片段類別,方法是 包括:

  1. 移除 kotlinx.android.synthetic 中的所有匯入項目。

  2. 加載為活動產生的繫結類別的例項,或 要使用的片段。

  3. 變更所有檢視畫面參照,改為使用繫結類別例項,而非 合成屬性:

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

詳情請參閱以下的「Usage」一節: 查看繫結指南