ViewPager 刷新自己
ViewPager refreshing itself
我 运行 遇到了一些奇怪的问题。我已经按照教程 Here
实现了 ViewPagerTabStrip
它工作正常,我已经实现了三个选项卡。
在第一页 /tab 上,我从服务器加载数据并将其显示在 ListView
问题是,当我滑动到第三页然后再滑动回到第二页时,第一页的数据正在从服务器再次加载。(重新创建第一个选项卡的视图。)
从日志来看,这似乎是 ViewPager & Adapter 的行为。
当我们在第一个选项卡上时,它也会在后台创建第二个选项卡/页面的视图;当我们在第二个选项卡上时,它在后台为第三个选项卡做同样的事情,并在到达第三个选项卡时, 它没有为自己创建视图(即第三个选项卡)。
但是当我们滑回第二个标签时,它也重新创建了第一个标签的视图。
如何解决这个问题?我们无法在浏览选项卡时一次又一次地从服务器加载数据。
我的意思是,有什么方法可以在浏览标签页时停止重新加载数据(或重新创建视图)?它应该在创建 View Pager 的整个片段 activity 时而不是在滑动时加载数据。
请问有什么帮助吗?
是的,ViewPager 在销毁它们之前只在内存中保留一定数量的片段 - 这个默认数量通常是两个。因此,您要做的就是告诉 ViewPager 保留这些片段。
最简单的解决方案是简单地告诉 ViewPager 在内存中保留三个片段 as follows:
viewPager.setOffscreenPageLimit(3);
这里有一些关于如何保留片段的建议答案(不仅仅是这种方法)和默认行为背后的原因以及这些解决方案:
- ViewPager and fragments — what's the right way to store fragment's state?
- retain state of viewpager fragments android
我 运行 遇到了一些奇怪的问题。我已经按照教程 Here
实现了ViewPagerTabStrip
它工作正常,我已经实现了三个选项卡。
在第一页 /tab 上,我从服务器加载数据并将其显示在 ListView
问题是,当我滑动到第三页然后再滑动回到第二页时,第一页的数据正在从服务器再次加载。(重新创建第一个选项卡的视图。)
从日志来看,这似乎是 ViewPager & Adapter 的行为。
当我们在第一个选项卡上时,它也会在后台创建第二个选项卡/页面的视图;当我们在第二个选项卡上时,它在后台为第三个选项卡做同样的事情,并在到达第三个选项卡时, 它没有为自己创建视图(即第三个选项卡)。
但是当我们滑回第二个标签时,它也重新创建了第一个标签的视图。
如何解决这个问题?我们无法在浏览选项卡时一次又一次地从服务器加载数据。
我的意思是,有什么方法可以在浏览标签页时停止重新加载数据(或重新创建视图)?它应该在创建 View Pager 的整个片段 activity 时而不是在滑动时加载数据。
请问有什么帮助吗?
是的,ViewPager 在销毁它们之前只在内存中保留一定数量的片段 - 这个默认数量通常是两个。因此,您要做的就是告诉 ViewPager 保留这些片段。
最简单的解决方案是简单地告诉 ViewPager 在内存中保留三个片段 as follows:
viewPager.setOffscreenPageLimit(3);
这里有一些关于如何保留片段的建议答案(不仅仅是这种方法)和默认行为背后的原因以及这些解决方案:
- ViewPager and fragments — what's the right way to store fragment's state?
- retain state of viewpager fragments android