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 レイアウト ファイルごとにバインディング クラスが生成されます。このバインディング クラスの名前は、末尾に Binding という単語が追加されたパスカルケース形式の XML ファイルの名前です。たとえば、レイアウト ファイルの名前が result_profile.xml
の場合、生成されるバインディング クラスの名前は ResultProfileBinding
です。
ビューを参照する合成プロパティの代わりに生成されたバインディング クラスを使用するには、次の手順でアクティビティ クラスとフラグメント クラスを変更します。
kotlinx.android.synthetic
からすべてのインポートを削除します。使用するアクティビティまたはフラグメントについて、生成されたバインディング クラスのインスタンスをインフレートします。
- アクティビティの場合は、アクティビティでビュー バインディングを使用するの手順に沿って、アクティビティの
onCreate()
メソッドでインスタンスをインフレートします。 - フラグメントの場合は、フラグメントでビュー バインディングを使用するの手順に沿って、フラグメントの
onCreateView()
メソッドでインスタンスをインフレートします。
- アクティビティの場合は、アクティビティでビュー バインディングを使用するの手順に沿って、アクティビティの
合成プロパティではなくバインディング クラス インスタンスを使用するように、すべてのビューの参照を変更します。
// 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
詳細については、ビュー バインディング ガイドの使用方法をご覧ください。
あなたへのおすすめ
- 注: JavaScript がオフになっている場合はリンクテキストが表示されます
- ビュー バインディング
- ページング ライブラリの概要
- Paging の実装をテストする