問題タブ [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.

0 投票する
2 に答える
11095 参照

android - Android MVVM: 複数のフラグメントを使用するアクティビティ - 共有 LiveData を配置する場所は?

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

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

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

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

ここに画像の説明を入力

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

ここに画像の説明を入力

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

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

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