私のチームは、アプリを Android で ViewModels を使用するように移行し始めたばかりで、支援が必要です。私たちのアプリには、フラグメントに表示される建物のコレクションがあります。リスト内の建物を選択して、その建物の詳細フラグメントの詳細を表示できます。
ここで提案されている方法 (ViewModel をアクティビティにバインド) を使用して、フラグメント間でデータを共有しようとしています: https://developer.android.com/topic/libraries/architecture/viewmodel#sharing
BuildingViewModel には、建物の masterList と詳細レコードがあります。BuildingCollectionFragment には masterList にオブザーバーがあり、BuildingDetailFragment にはディテール オブジェクトにオブザーバーがあります。
私たちが直面している問題は、ナビゲートできる DetailFragment に建物が関連する建物を持つ可能性があることです。関連する建物の詳細リストで建物を選択すると、新しい BuildingDetailFragment に遷移する前に次のコードが呼び出されます
buildingViewModel.detailObject.value = item!!.building
これはうまくいきます!
問題
問題は、戻るボタンを押すと、まだアクティビティにバインドされている ViewModel が、戻るボタンを押す前に見ていた建物がまだアクティブであると認識していることです。既存のリストをそのまま使用し、戻って API からデータを取得する必要がないようにしたいと考えています。