前人未踏の領域へ Androidアプリ開発編

Androidアプリ開発に関する調査メモ置き場。古い記事にはアプリ以外も含まれます。

View Binding : includeしたファイルのViewが見つからない

課題

View Bindingを使ってみたが、include タグ以下のVIewの情報が取得できない。

原因

Includeファイルに対してidを指定していない。View Bindingはidを付与したものに対してしかコードを生成しない。

対応

includeファイルにidを付与すると、そのファイルのBindingを返すクラスが取得できるようになる。 取得したBindingクラスを通じてincludeしたファイルのViewの処理を記述する。

<include android:id="@+id/include_tab" layout="@layout/include_tab_layout" />
//includeTabが IncludeTabLayoutBindingになる
binding.includeTab.tabLayout

mergeに対してもいくつか試してみたが起点となるViewを持たないため無理そうだった。 素直に空のViewGroupを親にして include するのが良さそうな感じ。