使用 ViewPager 保留 Fragment 实例(无配置更改)

Retaining Fragment instance (no configuration change) with ViewPager

如题所示,我想保留我的碎片。我已经强制我的应用程序方向在清单文件中始终处于横向模式,这样就不会发生旋转。

我已阅读: Understanding Fragment's setRetainInstance(boolean)Why use Fragment#setRetainInstance(boolean)? 但是,我不确定它们是否适用于我的情况。

我的项目包含一个 ViewPager 滑动标签。如何确保 ViewPager 中使用的片段与 MainActivity 首次启动时创建的片段相同?我会使用相同的标记方法和 findfragment 标记吗?

此外,最好在哪里检查标记的片段,否则创建一个新片段?

只是一个与 ViewPager 相关的附带问题:当 mainactivity 启动时,如何立即创建 ViewPager 中使用的所有片段,而不是等待滑动事件发生?

要回答你的最后一个问题,view pager 将默认在当前片段周围创建片段,因此你无需担心该部分。我建议让视图寻呼机为您管理您的片段,而不是更改行为,因为您可能会遇到性能问题。

SetRetainInstance 只是在片段分离时保留片段的实例,因此由您来评估是否需要使用它。关于该片段有什么要维护的吗?如果没有则不要使用它,尽可能释放你的内存。

最后一个问题,为什么要保留第一次创建的相同片段?每时每刻?如果您需要这样做,请重新考虑您的结构。优雅地重新创建您的片段,如果您担心的话,也许可以在另一层缓存您的数据。