【问题标题】:Retaining Fragment instance (no configuration change) with ViewPager使用 ViewPager 保留 Fragment 实例(无配置更改)
【发布时间】:2017-01-05 02:30:10
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: android android-fragments android-viewpager instance retain


    【解决方案1】:

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

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

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

    【讨论】:

    • 您好 Nilesh/Jay,感谢您的回复。这促使我思考我是否真的需要保留片段实例,而且似乎确实不是必须的。
    • @ImranHamid 如果您认为这回答了您的问题,请不要担心接受答案
    猜你喜欢
    • 1970-01-01
    • 2015-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多