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

자세한 내용은 뷰 결합 가이드의 사용법 섹션을 참고하세요.