使用 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
只是在片段分离时保留片段的实例,因此由您来评估是否需要使用它。关于该片段有什么要维护的吗?如果没有则不要使用它,尽可能释放你的内存。
最后一个问题,为什么要保留第一次创建的相同片段?每时每刻?如果您需要这样做,请重新考虑您的结构。优雅地重新创建您的片段,如果您担心的话,也许可以在另一层缓存您的数据。
如题所示,我想保留我的碎片。我已经强制我的应用程序方向在清单文件中始终处于横向模式,这样就不会发生旋转。
我已阅读: Understanding Fragment's setRetainInstance(boolean) 和 Why use Fragment#setRetainInstance(boolean)? 但是,我不确定它们是否适用于我的情况。
我的项目包含一个 ViewPager
滑动标签。如何确保 ViewPager 中使用的片段与 MainActivity 首次启动时创建的片段相同?我会使用相同的标记方法和 findfragment
标记吗?
此外,最好在哪里检查标记的片段,否则创建一个新片段?
只是一个与 ViewPager 相关的附带问题:当 mainactivity
启动时,如何立即创建 ViewPager 中使用的所有片段,而不是等待滑动事件发生?
要回答你的最后一个问题,view pager 将默认在当前片段周围创建片段,因此你无需担心该部分。我建议让视图寻呼机为您管理您的片段,而不是更改行为,因为您可能会遇到性能问题。
SetRetainInstance
只是在片段分离时保留片段的实例,因此由您来评估是否需要使用它。关于该片段有什么要维护的吗?如果没有则不要使用它,尽可能释放你的内存。
最后一个问题,为什么要保留第一次创建的相同片段?每时每刻?如果您需要这样做,请重新考虑您的结构。优雅地重新创建您的片段,如果您担心的话,也许可以在另一层缓存您的数据。