viewpager 中的 3 个 android 片段,如何让它们全部存活?

Posted

技术标签:

【中文标题】viewpager 中的 3 个 android 片段,如何让它们全部存活?【英文标题】:3 android fragments in viewpager, how to keep them all alive? 【发布时间】:2012-12-26 12:27:14 【问题描述】:

我有一个至少有 3 个片段的浏览器。如果用户将数据输入到 A,然后是 B,然后是 C,然后返回到 A,则数据从 A 中丢失。

我想我在某处读到这与内存管理有关,因为片段只连接或存储相邻的片段,当我离得太远时它会杀死 A。 但是我希望保留每个片段的生命,即使我有>3。

我如何告诉 viewpager 除非明确指示,否则永远不要杀死片段?

【问题讨论】:

【参考方案1】:

使用

setOffscreenPageLimit(int limit) 

在 ViewPager 对象上。 “它设置在空闲状态下视图层次结构中当前页面的任一侧应保留的页面数。”

【讨论】:

非常感谢,它真的很有帮助,我有 6 个标签,我想维护我的第一个片段的数据并花了 2 天时间:)。 这真的很有帮助。我的片段也在丢失状态。在使用此属性时,您还有什么其他建议或我应该记住的任何事情吗? 请注意,如果你想做相反的事情并确保你的片段根据生命周期被杀死和恢复,这将无济于事,因为minimum limit is 1 意味着至少有 3 个片段在任何时候。

以上是关于viewpager 中的 3 个 android 片段,如何让它们全部存活?的主要内容,如果未能解决你的问题,请参考以下文章

ViewPager 中的 Android Master/Detail 流程

Android:从 viewPager 中的 Fragment 为 ListView 的适配器调用 getview()

如何用 ViewPager 中的另一个片段替换 Android 片段?

Android:导航抽屉片段内的Viewpager

在 ViewPager 中使用 android:onclick

android ViewPager+Fragment 如何在ViewPager的Activity中获取Fragment中的控件对象