1

当我开始使用ViewPager. 由于每一页都是嵌套 Fragment的,我不能要求setRetainInstance(true)它。因此,我需要将Fragment的状态存储到 aBundle并取消/调用onViewAttached/Detached我不想这样做的远程 API 方法。

我对这种情况的了解:

  1. 我可以RecyclerViewPager用来避免使用嵌套Fragments,但我仍然无法保留Presenter. 其中一种方法是使用静态字段,但我可以对Fragment.
  2. rootViewPager在 MainActivity 下创建某种Fragments并在viasetVisibility(GONE/VISIBLE)和replace中使用它Adapter。因此,每个Fragment放入其中的ViewPager人都没有父母Fragment,我会解决我的问题。合适且优雅,但不是我认为的最佳解决方案。

还有其他变种吗?

4

1 回答 1

1

在 Mosby 3.0 中,即使没有……我也可以保留演示者setRetainInstance(true)……我建议等到 3.0 发布……

所以,我需要将 Fragment 的状态存储到一个 Bundle 并取消/调用我不想要的远程 API 方法 onViewAttached/Detached。

Mosby 2.0 完全可以为您做到这一点,但您必须使您的 ViewState 和您的数据实现 Parcelable。在这种情况下,演示者实例将无法在屏幕方向更改后继续存在,但演示者将在相同的状态/点上“恢复”(将创建一个新的演示者实例,也可能重新启动异步任务等)。请参阅RestorableViewState(javadoc 有点过时,因为它提到这是处理活动的唯一方法,因为 Mosby 2.0 不再适用)

于 2016-05-17T13:44:26.210 回答