[英]Master detail flow with shared viewmodel
這個Android文檔頁面的“片段之間共享數據”部分描述了如何使用ViewModel
解決主詳細信息流中所選項目的共享。 但是,該解決方案僅適用於將兩個片段都放在同一Activity
中的大型設備。 在較小的設備上,常用的方法是在其自己的DetailActivity
包含細節片段,然后這兩個片段將具有不同的ViewModel
實例,因此該方法將失敗。
所以我的問題是,如何將其推廣到所有設備尺寸?
我有一個主意,即使在小型設備上,我也可以將兩個片段放在同一活動中。 將此與我見過的主細節流程的每個實現相違背。 可以實現導航擬合。 然后, DetailActivity
將僅用於顯示單個項目以作為對Intent的反應。 它可以實例化SharedViewModel
並將設置的項目設置為selectedItem
。 然后,細節片段可以以相同的方式獲取SharedViewModel
的實例,而無需區分兩個父活動。
這個問題是相似的,但是人們在評論中抱怨這是廣泛而不清楚的
為什么在較小的設備上需要使用DetailActivity
? 您仍然只有一個Activity
可以在master和detail Fragment
之間持有共享的ViewModel
。
然后使用Fragment
事務或NavigationController
在主要和詳細信息之間切換。 唯一的區別是兩個片段將不會在屏幕上同時顯示,但它們仍將共享鏈接到父Activity
的基礎ViewModel
。
也許在問向日葵的例子時不可用。 對其進行檢查,因為它實現了工廠列表的主/詳細流程,這似乎正是您想要的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.