2016-05-16 78 views
1

我開始使用ViewPager時遇到了這個問題。由於每頁都是嵌套Fragment,我不能給setRetainInstance(true)打電話。因此,我需要將Fragment的狀態存儲到Bundle,並取消/調用我不想要的遠程API方法onViewAttached/Detached如何在屏幕旋轉時保留Presenter的嵌套片段實例

我瞭解這個情況什麼:

  1. 我可以用RecyclerViewPager避免使用嵌套Fragments,但我仍然不能保持Presenter一個實例。其中一種方法是使用靜態字段,但我可以使用Fragment做同樣的事情。
  2. 在MainActivity下創建某種rootViewPager,並通過setVisibility(GONE/VISIBLE)Fragments中使用它並替換Adapter。因此,放入此ViewPager的每個Fragment都不會有父母Fragment,我會解決我的問題。我認爲適合和優雅,但不是最好的解決方案。

任何其他變種?

回答

1

在莫斯3.0演示即使不setRetainInstance(true)保留......我建議等到3.0版本...

所以,我需要到碎片的狀態存儲到一個捆綁並取消/召回 onViewAttached/Detached上的遠程API方法,我不想。

Mosby 2.0的確如此,但你必須讓你的ViewState和你的數據實現Parcelable。在這種情況下,演示者實例將無法繼續屏幕方向更改,但演示者將在相同的狀態/點上「恢復」(將創建新的演示者實例,異步任務等也可能會重新啓動)。見RestorableViewState(javadoc稍微過時了,因爲它提到這是與自Mosby 2.0以來不再有效的活動一起工作的唯一方式)

+0

我知道RestorableViewState。我不想以這種方式保存狀態,因爲我已經用'setRetainInstance(true)'在片段上構建了我的應用程序的整個架構。 – Alexandr

+0

我什麼時候可以期待Mosby 3的發佈? – Alexandr

+1

也許6月底,不保留片段的快照可能會更快提供 – sockeqwe

相關問題