与成千上万的其他开发者一样,在某些时候我想要一个水平的图像库。 (在我的情况下,我希望它在PageViewer页面中)。然后我听说有一个叫做android.wiget.Gallery的小部件就是为这种情况设计的。
很快,我开始听到Gallery已被弃用,并且检查了StackOverflow,其他帖子之后提示了HorizontalScrollView是要走的路。
我放弃了Gallery并在HorizontalScrollView中设置了所有内容。我首先注意到HorizontalScrollView实际上并不是一个小部件,因为它只能处理一个根布局。好的,所以我将根布局实现为LinearLayout。在LinearLayout中添加我的所有可滚动条,并意识到HorizontalScrollView也没有适配器。没问题,我将循环浏览视图,逐个膨胀它们,并抛弃AsyncTask来加载图片。在4.03上正常工作。然后我在2.2上运行它并猜测是什么,运行的异步任务太多 - 所以它崩溃了。 也许只有一个AsyncTask可以运行,但有超过30个图像。现在我又开始考虑画廊了。
但后来我听说有一个HorizontalListView。我实现了它,加上一个适配器。它完美地工作,除了现在滚动不是那么平滑(在ViewPager的页面内),并且在重新加载几次后(在ViewPager的页面内)它会卡住。我想知道是否应该花更多时间修改HorizontalListView或重新访问我的其他三个实现。也许我不应该如此认真地对待这种弃用。
有什么建议吗?
结语:
最后,我决定继续使用HorizontalScrollView for ViewPager,并在其他情况下使用HorizontalListView。这是由于滚动效率,闪电般快,我能够通过覆盖HorizontalScrollView中的onScroll来最终计算出自定义适配器,并与CountDownTimer结合使用,无论速度如何,都会定期更新范围内的图像。建议的另一个解决方案是使用速度来开始下载,当时足够慢。如果HorizontalListView提示将检查其在ViewPager中的行为,那将是很好的,因为我确信它可以被优化和改进。如果我有更多的时间,这将是我的首选解决方案。但时间稍纵即逝......