【发布时间】:2012-09-26 10:15:39
【问题描述】:
我尝试实现一个类似于 Google Play 商店中的图片库,其中下一张图片可见:
我为此尝试了不同的方法,但每一种都遇到了死胡同:
1.使用 PagerContainer (here info) 但是这个解决方案在任何 2.x 设备上都不适用于我,因为下一个图像不可见,并且 ViewPager 仅在其范围内滚动(错误,没有发布here 的答案)
2.使用 HorizontalScrollView 事实证明,该解决方案在设计和功能方面非常适合我的需求,但由于 HorizontalScrollView 仅支持一个子视图,它会绘制整个视图,因此我在某些设备上存在内存问题。我从服务器接收图像,它们的数量和大小都很大。所以这里也遇到了死胡同。
3.使用 HorizontalListView (info here) 这听起来像是 HorizontalScrollView 的替代方案,因为使用了 Adapter,因此内存问题得到了解决。但是,从服务器加载图像后,我无法正确修改此类以更改其测量值。正如你所看到的,它测量它的孩子,同时牢记父母的测量。当我定义视图时,尚未从服务器接收到图像,因此测量结果不正确。收到图像后,我无法正确强制重新测量视图。
4.将 ViewPager 边距设置为负数 这个解决方案对我不起作用,因为一旦我开始滚动,测量值就没有正确显示。 (第一个视图显示设置的边距,下一个图像可见。但是,开始滚动后,有些图像有边距,有些没有,有些只有一侧等。)我不知道这里是否有不断测量的解决方案视图和屏幕。
如果您认为这是正确的解决方案之一,我可以发布其中一种解决方案的代码。但我觉得 Google Play 使用了另一种我不知道的解决方案。我不想使用画廊,因为它已被弃用。
【问题讨论】:
标签: android-layout android-viewpager android-gallery android-image android-scrollview