Activity
には、3つのRecyclerViews
が含まれています。私はRecyclerViews
にリモートリポジトリからのデータ(3つの異なる要求)を入力する必要があります。 Activity
に複数のViewModels
を使用することもできますし、より良い解決方法(ベストプラクティス)がありますか。複数のViewModelを使用したアクティビティ
答えて
この場合、3つの異なるLiveDataオブジェクトを設定する1つのビューモデルを使用することをお勧めします。このようにして、3つのリクエストのうちの1つがレスポンスを取得するたびにUIが更新されます。 LiveDataでRecyclerViewを使用する方法の詳細については、Google Exampleを参照してください。
アクティビティごとに複数のビューモデルを作成すると複雑さが増し、それを行う際には何の価値も見られません。
Googleの例のリンクが死んでいます。 –
ありがとう、私はそれを更新しました – guglhupf
@guglhupf「RecyclerViews」間の結合を減らし、それらを独立して再利用するか、別の画面に移動する能力を高めます。 –
the open/closed principleによれば、3種類の異なるViewModel
を作成する必要があります。複雑さはさほど増えておらず、対応するRecyclerView
を別のActivity
に非常に簡単に移動する能力を得ています(または再利用するだけです)。
当然のことながら、わかっていれば、RecyclerView
は再利用されるか、別の画面に移動され、ViewModel
という簡単な解決策に進むことができます。
ViewModel
(3つのリストであっても)は常に非常にシンプルになります(LiveData
のフィールドは3つあります)。このルールを破ることができます。
しかし、O/CPの違反は良い習慣ではありません。それは意識的なルールの破りです。
- 1. Androidリストビュードリルダウン - 1つのアクティビティまたは複数のアクティビティを使用しますか?
- 2. 複数のアクティビティでのAsyncTaskの使用
- 3. 複数の継承アクティビティの使用
- 4. 単純なバインディングで複数のViewModelを使用するには
- 5. 複数のコンテキストでViewModel /モデルを使用すべきですか?
- 6. ViewModelを使用して複数のテーブルからデータを取得しますか?
- 7. ViewModelの複数のインスタンス
- 8. WPF Usercontrol MVVMを使用したデータバインディングViewModel
- 9. 複数のアクティビティ
- 10. viewmodelを使用してストアドプロシージャを使用した完全なドロップダウンリスト
- 11. アクティビティを使用したページナビゲーション
- 12. 複数の階層を持つwpf viewmodel
- 13. 同じViewModelを持つ複数のビュー
- 14. ViewModelを複数のウィンドウにバインドする
- 15. android - 複数のアクティビティで同じフラグメントを使用する
- 16. アクティビティまたはフラグメントで複数のローダーを使用する場合
- 17. 複数のviewControllerを使用したコアデータ
- 18. エグゼキュータフレームワークを使用した複数のタスク
- 19. 複数のクエリを使用したXMLHttpRequest
- 20. KeystoneJSを使用した複数のテンプレートエンジン
- 21. backbone.jsを使用した複数のルータ
- 22. 複数の値を使用したプリペアドステートメント
- 23. JavaScriptを使用した複数のユーザーコントロール
- 24. jqueryを使用した複数のフォーム
- 25. ボタンを使用した複数のドロップダウン
- 26. 複数のコンフィグを使用したjQuery.event.drop
- 27. Resteasyを使用した複数のエンドポイント
- 28. log4jを使用した複数のログファイル
- 29. Eclipseを使用した複数のプロジェクト
- 30. THREE.Renderpassを使用した複数のシーンレンダリング
GoogleのAACサンプルは、 1個のLiveDataで1個のRecyclerViewsの使用を示しました。 3つのLiveDatasを持つ3つのRecyclerViewを実行しようとするとどうなるでしょうか –