web-dev-qa-db-ja.com

ViewModelをRecyclerViewアダプターに渡してLiveDataを観察できますか?

私はMVVMの実装を開始しましたが、ViewModel内でAdapterを使用することがグッドプラクティスなのかアンチパターンなのかわかりません。

例として、背景を変更する色と画像のリストを考えてみましょう。その場合、選択したColorを監視し、UIに表示する背景色をバインドします。

しかし、私は2つの場所でcolorSelectedを観察しています:

  • 背景色を変更するためにFragment
  • Adapterでは、選択した色を表示します

それで、MVVMViewModelに渡して監視するときに、Adapterを適切に使用していますか?

14
AndroidStorm

良いパターンかどうかは今のところわかりませんが、これには1つの問題があります。この方法では、アダプターがViewModelに関連付けられているため、別の画面で他のViewModelと再利用できません。一方で、recyclerViewからのコールバックを追加せずに作業を行う方がはるかに簡単で、実装が簡単になります。コールバックを使用する方が「良い」と思いますが、ViewModelを渡す方が「簡単」です(CGは問題なく処理できるはずです)。

1
Janusz Hain