40

Android ViewModel に関するアーキテクチャ上の質問があります。

私のアプリで、内部に 2 つのフラグメントを含むアクティビティがあるとします (Viewpager を使用)。2 つのフラグメントは異なることを行います (したがって、独自の ViewModel を持っている可能性がありますか?) が、両方とも同様のさまざまなデータを必要とします。

これは、たとえば、ネットワーク接続が利用可能かどうかの状態 (接続がない場合は両方のフラグメントに異なるエラー UI が表示される)、またはサーバーからのプッシュを介して取得され、両方のフラグメントに等しく影響するユーザー設定です。

これは次のようになります。

ここに画像の説明を入力

私の質問は、ViewModels を使用するときにその状況にどのように対処するかです。ビューが複数の ViewModel を観察するのは良いことですか。次のように、Activity 用の ViewModel (両方が等しく必要とする状態を保持する) と各フラグメント用の ViewModel がある場合のように:

ここに画像の説明を入力

これは、たとえばhereで示唆されていましたが、MVVM の関係は一般的に

ビュー n - 1 ViewModel n - 1 モデル

しかし、私の場合、そのような共有 LiveData の適切な場所がどこにあるのかわかりません。

4

2 に答える 2