我遇到了一些奇怪的问题。我按照教程Here
实施了ViewPagerTabStrip
它工作正常,我实施了三个标签。
在第一页/标签页上,我正在加载来自服务器和数据库的数据。在ListView
问题是,当我刷到第三页&然后我刷回第二页,第一页的数据再次从服务器加载。(重新创建第一个标签的视图。)
从日志中看,这似乎是ViewPager& amp;的行为。适配器。
当我们在第一个标签上时,它会在背景和背景中创建第二个标签/页面的视图。当我们在第二个选项卡上时,它在后台和第三个选项卡中执行相同操作。在到达第三个标签时,它没有创建自己的视图(即第三个标签)。
但是当我们滑回第二个标签时,它也会创建第一个标签的视图。
如何解决这个问题?我们负担不起在浏览选项卡时反复加载来自服务器的数据。
我的意思是,有什么方法可以在浏览标签页时停止重新加载数据(或重新创建视图)?它应该在创建View Pager的整个片段活动时加载数据,而不是在刷卡时加载。
对此有任何帮助吗?
答案 0 :(得分:3)
是的,ViewPager在销毁它们之前只在内存中保留了一定数量的片段 - 这个默认数字通常是两个。因此,您需要做的是告诉ViewPager保留这些片段。
最简单的解决方案是简单地告诉ViewPager将三个片段保留在内存中as follows:
viewPager.setOffscreenPageLimit(3);
以下是关于如何保留片段(不仅仅是这种方法)以及默认行为背后的推理以及这些解决方案的一些建议答案: