Android Studioでビューバインディングに対応する方法

どうも、ケーサンヨーシです。

先日、新しいゲームアプリをリリースしました。

その際、Android開発用の新しい機能をいくつか導入したので、それらの使用方法を紹介します。

今回はビューバインディングです。

Androidの公式開発環境では、画面描画用のxmlを記載し、画面内の部品にIDを付けて識別することで、それらの高さや色、背景や文字などの属性を指定できます。

しかし、このxmlファイルが同じ画面内で複数ファイルにまたがった場合、IDの競合が発生し、アプリが落ちる可能性があります。

この欠点を克服したのが、ビューバインディングです。

ビューバインディングの場合、IDの競合はコンパイル時にエラーするため、アプリが落ちることはありません。

今までfindViewIdでIDを指定していた方は、後継であるビューバインディングに乗り換えることをおすすめします。

それでは、前置きが長くなりましたが、行ってみましょう。

□■□■□

ビューバインディングを使用する場合は、build.gradleファイルに以下の記述が必要になります。

android{
    viewBinding{
        enabled = true
    }
}

andorid{}は既に記載されているので、そのカッコ内にviewBindingを入れてください。

記述が終わったら、上の方にSynk nowという青い通知バーが出てくるので、それを押してください。

これで、ViewBindingを使用する準備ができました。

実際に使用する際には、ライフサイクルのonCreate内に以下の内容を追加します。

val binding = ResultProfileBinding.inflate(layoutInflater)
val view = binding.root
setContentView(view)

このbindingにはバインディングクラスのインスタンスが入っています。このインスタンスをしようすることで、レイアウト内の各部品のViewインスタンスにアクセスできます。

例として、以下のようなレイアウトがあるとします。

このbutton1にアクセスしてボタン処理を実装する場合、

binding.layout1.scroll1.button1.setOnClickListener{
    //ボタン処理
}

のように記述します。他の属性についても同様に指定することができます。

既存のアプリの場合、以上の内容を全体に適用することで、ビューバインディングに対応することができます。

□■□■□

というわけで、ビューバインディングへの対応方法を紹介しました。

ここで紹介した方法は、公式ページにさらに詳しく書かれています。

https://developer.android.com/topic/libraries/view-binding?hl=ja

導入の難易度は低めで、デメリットもほぼないため、新しくアプリを作り始める時はもちろん、既にあるアプリも対応する価値があるかと思います。

以上!!

このブログの人気の投稿

動画編集ソフト「Shotcut」で縦向きの動画を横向きにする方法。

Audacityで音声部分のみを自動カットする方法

Android Studioでの動的なLayoutの幅と高さの変更方法