Android Studioでビューバインディングに対応する方法
どうも、ケーサンヨーシです。
先日、新しいゲームアプリをリリースしました。
その際、Android開発用の新しい機能をいくつか導入したので、それらの使用方法を紹介します。
今回はビューバインディングです。
Androidの公式開発環境では、画面描画用のxmlを記載し、画面内の部品にIDを付けて識別することで、それらの高さや色、背景や文字などの属性を指定できます。
しかし、このxmlファイルが同じ画面内で複数ファイルにまたがった場合、IDの競合が発生し、アプリが落ちる可能性があります。
この欠点を克服したのが、ビューバインディングです。
ビューバインディングの場合、IDの競合はコンパイル時にエラーするため、アプリが落ちることはありません。
今までfindViewIdでIDを指定していた方は、後継であるビューバインディングに乗り換えることをおすすめします。
それでは、前置きが長くなりましたが、行ってみましょう。
□■□■□
ビューバインディングを使用する場合は、build.gradleファイルに以下の記述が必要になります。
viewBinding{
enabled = true
}
}
andorid{}は既に記載されているので、そのカッコ内にviewBindingを入れてください。
記述が終わったら、上の方にSynk nowという青い通知バーが出てくるので、それを押してください。
これで、ViewBindingを使用する準備ができました。
実際に使用する際には、ライフサイクルのonCreate内に以下の内容を追加します。
val view = binding.root
setContentView(view)
このbindingにはバインディングクラスのインスタンスが入っています。このインスタンスをしようすることで、レイアウト内の各部品のViewインスタンスにアクセスできます。
例として、以下のようなレイアウトがあるとします。
このbutton1にアクセスしてボタン処理を実装する場合、
//ボタン処理
}
のように記述します。他の属性についても同様に指定することができます。
既存のアプリの場合、以上の内容を全体に適用することで、ビューバインディングに対応することができます。
□■□■□
というわけで、ビューバインディングへの対応方法を紹介しました。
ここで紹介した方法は、公式ページにさらに詳しく書かれています。
https://developer.android.com/topic/libraries/view-binding?hl=ja
導入の難易度は低めで、デメリットもほぼないため、新しくアプリを作り始める時はもちろん、既にあるアプリも対応する価値があるかと思います。
以上!!