問題タブ [android-viewmodel]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Android MVVM: 複数のフラグメントを使用するアクティビティ - 共有 LiveData を配置する場所は?
Android ViewModel に関するアーキテクチャ上の質問があります。
私のアプリで、内部に 2 つのフラグメントを含むアクティビティがあるとします (Viewpager を使用)。2 つのフラグメントは異なることを行います (したがって、独自の ViewModel を持っている可能性がありますか?) が、両方とも同様のさまざまなデータを必要とします。
これは、たとえば、ネットワーク接続が利用可能かどうかの状態 (接続がない場合は両方のフラグメントに異なるエラー UI が表示される)、またはサーバーからのプッシュを介して取得され、両方のフラグメントに等しく影響するユーザー設定です。
これは次のようになります。
私の質問は、ViewModels を使用するときにその状況にどのように対処するかです。ビューが複数の ViewModel を観察するのは良いことですか。次のように、Activity 用の ViewModel (両方が等しく必要とする状態を保持する) と各フラグメント用の ViewModel がある場合のように:
これは、たとえばhereで示唆されていましたが、MVVM の関係は一般的に
ビュー n - 1 ViewModel n - 1 モデル
しかし、私の場合、そのような共有 LiveData の適切な場所がどこにあるのかわかりません。