当我开始使用ViewPager
时,我就面临着这个问题。因为每个页面都是嵌套的Fragment
,所以我不能为此调用setRetainInstance(true)
。因此,我需要将Fragment
的状态存储到Bundle
,并取消/召回我不想要的远程API方法onViewAttached/Detached
。
我对这种情况的了解是:
Fragments
,但是仍然不能保留 演示者的一个实例。其中一种方法是使用静态字段,但我也可以使用Fragment
。setVisibility(GONE/VISIBLE)
在Fragments
中使用,并替换Adapter
。因此,放置在这个ViewPager
中的每个ViewPager
都不会有父Fragment
,我将解决我的问题。适合和优雅,但不是最好的解决方案,我认为。还有其他变体吗?
发布于 2016-05-17 05:44:26
在莫斯比3.0的主持人可以保留即使没有setRetainInstance(true)
.我建议等到3.0发行..。
因此,我需要将片段的状态存储到Bundle中,并取消/召回onViewAttached/Detached上的远程API方法,而我不想这样做。
Mosby2.0正是这样做的,但您必须使您的ViewState和您的数据实现Parcelable。在这种情况下,演示程序实例将无法承受屏幕方向的更改,但是演示程序将在相同的状态/点上“恢复”(将创建一个新的演示程序实例,异步任务等也可能被重新启动)。请参阅RestorableViewState (javadoc稍微过时了,因为它提到这是处理自Mosby2.0以来不再正确的活动的唯一方法)。
https://stackoverflow.com/questions/37260340
复制