我正在尝试使用 ViewPager 组件实现无限轮播。我基于 Antonyt 创建的那个但是使用少于 4 个 View 会出现问题。由于 View 已经到位。必须是一种欺骗 Viewpager 在不同位置绘制相同 View /页面的方法。
最佳答案
我遇到了同样的问题,自己找不到解决方案。但我想只使用 1-4 个 View 是不可能的。问题是所有 View (重复 1-4 张图像)将立即实例化(或至少在很短的时间间隔内),这会干扰图像加载过程,因为上一个加载尚未完成,所以上一个一个返回损坏的 View 。不过,您可以像这样处理它。
1) 在实例化之后,使用延迟 100-200 毫秒的处理程序在任一方向上一次又一次地(大约 10 次)翻转 View setCurrentItem(),这样原始的 4 将是超出范围(如果你有屏幕外页面限制,我希望你有,因为你的代码的无限性质)并且稍后将一个一个地创建。
2)使用多个缓冲对象,
1 个图像 - 8 个缓冲区
2 个图像 - 每个 4 个缓冲区
3 张图像 - 每张 2 个缓冲区...类似这样。
这两个都不是理想的解决方案,但都对我有用。我也想知道你试过什么。
关于android - 少于 4 个 View 的 ViewPager Circular,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13725953/