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

Kotlin Android 擴充功能已淘汰,因此不再支援使用 Kotlin 合成進行檢視繫結。如果應用程式使用 Kotlin 合成項目處理檢視區塊繫結,請按照本指南的說明,改用 Jetpack 檢視區塊繫結。

如果您的應用程式尚未使用 Kotlin 合成進行檢視區塊繫結,請參閱「檢視區塊繫結」瞭解基本使用資訊。

更新 Gradle 檔案

與 Android 擴充功能一樣,Jetpack 檢視區塊繫結也會根據模組逐一啟用。針對每個使用檢視繫結的模組,請在模組層級 build.gradle 檔案中將 viewBinding 建構選項設為 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 版面配置檔案產生繫結類別。此繫結類別的名稱是 Pascal 案件中的 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」一節。