ViewPager + 回收视图?

5
3个回答

3

但 PagerAdapter 类不会为我们处理视图的回收(就像标准 ListView 一样),对吗?

不会,我认为这是因为它假定您对每个页面使用不同的布局。

此外,由于它的滚动速度不像 ListView 那样快(您无法通过“fling”ViewPager 来跳过多个页面),所以我认为它不需要回收。


3
但是Gallery已经被弃用了,所以他们基本上没有为我们提供任何可重复利用的水平滑动解决方案? - user291701
@user291701 无论如何,Gallery都不会回收视图,即使使用了适配器(convertView始终为null)。 - Jason Robinson
@ılǝ 保持视图活性并不等同于回收利用...它只是为了让适配器在用户在两个或三个视图之间切换时无需再次填充它,但不一定在不同的页面使用相同的视图。此外,FragmentPagerAdapter 不持有视图--它持有 Fragment,并且对于 FragmentPagerAdapter 没有 getItem(int position) 方法的重载,因此我认为它并没有回收任何东西。 - josephus
我刚意识到,“回收”并不等同于“可被JVM GC收集”。无论如何,FragmentPagerAdapter似乎是水平滑动UI的好解决方案,尽管它不像ListAdapters那样高效。(感谢您对我耐心的支持@JosephusVillarey :) ) - ılǝ
1
哈哈,如果你这样想的话,在这个上下文中回收利用可以有两种相反的意思! :) 实际上,目前这是实现水平滑动的唯一方法,除非你自己实现(或使用第三方)水平列表视图。 - josephus
显示剩余2条评论

2

1

请查看此问题中的编辑链接。编辑中的链接和答案提供了一些可能的解决方法。

如果您搜索一下,就会发现有一个名为HorizontalListView的在线控件,它可以很好地替代Gallery并且可以回收其视图。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接