android – 如何告诉我的自定义FragmentPagerAdapter来停止销毁我的碎片?

栏目: IOS · Android · 发布时间: 6年前

内容简介:我有一个带有FragmentPagerAdapter的ViewPager,我的应用程序以前只使用了两个片段(不同类型),没有问题.我刚刚添加了第三个片段,现在我的适配器/查看器似乎正在摧毁我的片段,当我远离他们.例如,如果我在第1页,第3页被破坏并重新创建,当我接近它.如果我在第3页,第1页也是如此.这在我的应用程序中引起了很多问题.这些碎片根本不是非常重的RAM,所以我该如何阻止这种情况发生?

我有一个带有FragmentPagerAdapter的ViewPager,我的应用程序以前只使用了两个片段(不同类型),没有问题.

我刚刚添加了第三个片段,现在我的适配器/查看器似乎正在摧毁我的片段,当我远离他们.例如,如果我在第1页,第3页被破坏并重新创建,当我接近它.如果我在第3页,第1页也是如此.

这在我的应用程序中引起了很多问题.这些碎片根本不是非常重的RAM,所以我该如何阻止这种情况发生?

我相信你正在寻找 ViewPager.setOffscreenPageLimit()

.

在你的情况下,以下应该保持你的碎片在记忆中,而不是破坏它们.

ViewPager pager = (ViewPager) findViewById(R.id.viewPager);
pager.setOffscreenPageLimit(2);

但是,我怀疑您在销毁时不正确地存储您的视图状态.您的碎片应正确处理被毁坏/重新创建.如果发生方向改变,您的碎片将被破坏并重新创建.如果用户离开您的应用程序并且系统以后需要内存并销毁您的活动,也可能会发生这种情况.它应该能够重新打开并处于与之前相同的状态.如果这确实是您的问题,请考虑在 onSaveInstanceState() 保存状态.保存的状态将在 onCreate 中提交给您,您可以将该片段的状态初始化为与已销毁的状态相同.

http://stackoverflow.com/questions/13273285/how-do-i-tell-my-custom-fragmentpageradapter-to-stop-destroying-my-fragments


以上所述就是小编给大家介绍的《android – 如何告诉我的自定义FragmentPagerAdapter来停止销毁我的碎片?》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

JavaScript设计模式与开发实践

JavaScript设计模式与开发实践

曾探 / 人民邮电出版社 / 2015-5 / 59.00元

本书在尊重《设计模式》原意的同时,针对JavaScript语言特性全面介绍了更适合JavaScript程序员的了16个常用的设计模式,讲解了JavaScript面向对象和函数式编程方面的基础知识,介绍了面向对象的设计原则及其在设计模式中的体现,还分享了面向对象编程技巧和日常开发中的代码重构。本书将教会你如何把经典的设计模式应用到JavaScript语言中,编写出优美高效、结构化和可维护的代码。一起来看看 《JavaScript设计模式与开发实践》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具