As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center提供指导。




已关闭8年。




像成千上万的其他开发人员一样,在某个时候我想要一个水平的图像库。 (在我的情况下,我希望在PageViewer的页面中使用它)。然后,我听说有一个名为android.wiget.Gallery的小部件专门为这种情况而设计。

不久,我开始听说Gallery已过时,并检查StackOverflow,接连其他帖子都建议使用Horizo​​ntalScrollView。

我放弃了Gallery,并在Horizo​​ntalScrollView中设置了所有内容。我首先注意到,Horizo​​ntalScrollView实际上并不是一个小部件,因为它只能处理一个根布局。好的,所以我将根布局实现为LinearLayout。在LinearLayout中添加我所有的可滚动对象,并意识到Horizo​​ntalScrollView也没有适配器。没问题,我将循环浏览各个 View ,将它们一个接一个地扩大,并抛弃AsyncTask来加载图片。在4.03上工作正常。然后我在2.2上运行它,然后猜测是什么,正在运行太多异步任务-因此它崩溃了。
也许有一个AsyncTask可以运行所有图像,但有30多个图像。现在,我开始重新考虑Gallery。

但是然后我听到有一个Horizo​​ntalListView。我实现了它,外加一个适配器。除非现在滚动不那么顺畅(在ViewPager的页面内),并且重新加载几次(在ViewPager的页面内),否则卡住了,它可以正常工作。我想知道我是否应该花更多的时间修改Horizo​​ntalListView或重新访问我的其他三个实现。也许我不应该这么认真对待贬值。

有什么建议么?

结语:

最后,我决定在ViewPager中使用Horizo​​ntalScrollView,并在其他情况下使用Horizo​​ntalListView。这是由于滚动效率高,闪电般快,我终于可以通过覆盖Horizo​​ntalScrollView中的onScroll来最终设计出一个自定义适配器,并且与CountDownTimer结合使用,可在不考虑速度的情况下定期更新一定范围内的图像。建议的另一种解决方案是在速度足够慢时使用速度来开始下载。如果Horizo​​ntalListView的拥护者可以在ViewPager中检查其行为,那将是很好的,因为我相信它可以被优化和改进。如果我有更多时间,这将是我的首选解决方案。但是时间在流逝..

最佳答案

如果您仍然打算使用HorizontalScrollView,建议您在布局中查找here,在处理项目选择监听器时查找here。但是我不喜欢这种方法,因为您实际上只是在LinearLayout内制作了一个巨大的HorizontalScrollView,这会导致内存问题,因为即使关闭屏幕,所有图像仍然存在。

我个人建议使用找到的HorizontalListView here

关于android - 水平滚动 View : Is It Really A Solution?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14035879/

10-09 01:46