「アクティビティ全体」のデータバインディングを何ら問題なく動作させることができました。しかし、特定のビューのバインディングをセットアップしようとすると、プログラムがLinearLayoutに追加している膨らんだビューなど、何も試したことがありません。個々のビューのAndroidデータバインディングは、プログラムによってLinearLayoutに追加されましたか?
たとえば、アクティビティのビューへのデータのバインドは簡単です。通常onCreate()メソッドでは、次のものを追加するだけです。
MainActivityBinding binding = DataBindingUtil.setContentView(this, R.layout.main_activity);
User user = new User("Test", "User");
binding.setUser(user);
これだけです! main_activity.xmlのビューはいくつかの魔法を介してバインディングにバインドされます(これは私の問題です)、main_activity.xmlで変数の置換が期待通りに機能します。
私は、RecyclerViewの使用に関するGoogleの文書を参照し、膨大なビューでこの方法を利用しようとしました。私はListItemBinding(私の.xmlは単にlist_item.xmlと呼ばれ、このファイルは.xmlレイアウトから自動的に生成されます)を作成することでこれを行いました.ListItemBindingはViewHolderに渡され、各ViewHolderのコンストラクタ
これはうまくいきませんが、これは私のビューとバインディングの間に明示的な結びつきがないことを推測していますが、上記のアクティビティとバインディングの間には関係がありませんそれは動作しますか?
アクティビティでバインディングがどのように機能しているかを確認するにはソースコードを掘り下げていますが、私の回答は確実ですが、他の人が複数時間を費やす前にチャイムインすることができれば、開始!
私はあなたがのLinearLayoutにビューをバインド動的に膨張したデータを追加することができ、非常に
RecyclerViewでAndroidデータバインディングを使用するには、いくつかのトリックがあります。この話を見てくださいhttps://realm.io/news/data-binding-android-boyar-mount/ - 約22分で、YigitはRecyclerViewでデータバインディングを使用する方法を話します。 –
@GeorgeMount実際にはRecyclerViewを使用したくないのですが、リストあたり最大5つのビューしかないので、多くのリサイクルはできません...とにかく、私はLinearLayoutを使って適切なRecyclerViewsに切り替えてビューを追加しました個別にそれに。非常に簡単で余分なオーバーヘッドはおそらく簡単なアプローチに値するでしょう。 – AutoM8R