我试图实现一个像 Google Play 商店那样的图片库,下一张图片是可见的:
我为此尝试了不同的方法,但每种方法都陷入了死胡同:
1. 使用 PagerContainer(此处信息) 但此解决方案不适用于我在任何 2.x 设备上,因为下一个图像不可见,并且 ViewPager 仅在其边界内滚动(错误,此处未发布答案)
2. 使用HorizontalScrollView 这个解决方案在设计和功能方面被证明是好的,但是因为HorizontalScrollView 只支持一个子视图,它会绘制整个视图,所以我在某些设备上遇到了内存问题。我从服务器接收图像,它们的数量和大小都很大。所以这里也遇到了死胡同。
3. 使用HorizontalListView(这里的信息) 这听起来像是HorizontalScrollView的替代品,因为使用了适配器,所以内存问题得到了解决。但是,从服务器加载图像后,我无法正确修改此类以更改其测量值。正如你所看到的,它测量它的孩子,同时牢记父母的测量。当我定义视图时,尚未从服务器接收到图像,因此测量结果不正确。收到图像后,我无法正确强制重新测量视图。
4. 将 ViewPager 边距设置为负 这个解决方案对我不起作用,因为一旦我开始滚动,测量值就没有正确显示。(第一个视图显示设置的边距,下一个图像可见。但是,开始滚动后,有些图像有边距,有些没有,有些只有一侧等。)我不知道这里是否有一个不断测量的解决方案视图和屏幕。
如果您认为它是正确的,我可以发布其中一种解决方案的代码。但我觉得 Google Play 使用了另一种我不知道的解决方案。我不想使用画廊,因为它已经被弃用了。