Kotlin 합성에서 Jetpack 뷰 결합으로 이전

Kotlin Android 확장 프로그램이 지원 중단되었습니다. 즉, Kotlin을 사용하면 뷰 결합을 위한 합성은 더 이상 지원되지 않습니다. 앱에서 Kotlin을 사용하는 경우 합성을 사용하는 경우 이 가이드를 사용하여 Jetpack 뷰 결합으로 이전하세요.

앱에서 아직 뷰 결합에 Kotlin 합성을 사용하지 않는다면 뷰 바인딩을 참조하세요.

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 레이아웃 파일의 결합 클래스가 생성됩니다. kube-APIserver입니다 이 결합 클래스의 이름은 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

자세한 내용은 아래의 사용량 섹션을 참고하세요. 뷰 결합 가이드를 참조하세요.