前提・実現したいこと
databindingにてレイアウトをincludeで指定する際に、
includeの中身のレイアウト自身をdatabindingで変更することは可能でしょうか?
発生している問題・エラーメッセージ
android.databinding.tool.processing.ScopedException: [databinding] {"msg":"included value (@{viewModel.cardImage}) must start with @layout/."......
該当のソースコード
aiueo_fragment.xml
1<include 2 android:id="@+id/card" 3 layout="@{viewModel.cardImage}" 4... 5/>
aiueo_viewModel.kt
1fun initCard(){ 2 when (a){ 3 1 -> cardImage.postValue(R.layout.included_layout1) 4 2 -> cardImage.postValue(R.layout.included_layout2) 5 3 -> cardImage.postValue(R.layout.included_layout3) 6 } 7}
試したこと
viewModel.cardImageという形で、
viewModel側で中身のレイアウトを指定してみたのですが、
ビルドの時点でエラーが発生するので、やはりlayout自身は必須の項目になってしまって、
bindingで調整することは厳しいのでしょうか?
また。別の解決策として、
Fragmentのレイアウトの中にfragment container作り、
表示中のフラグメントの中に新たに別フラグメントを表示することは可能でしょうか?
回答1件
あなたの回答
tips
プレビュー