Android 具有少于4个视图的ViewPager循环
我正在尝试使用ViewPager组件实现一个无限旋转木马。我以创建的视图为基础,但使用少于4个视图存在问题。因为视图已经就位。这一定是一种欺骗Viewpager在不同位置绘制相同视图/页面的方法。我遇到了相同的问题,自己找不到解决方案。但是我想仅仅使用1-4个视图是不可能的。问题是,所有视图(1-4个重复图像)将一次实例化(或至少在很短的时间间隔内实例化),这会干扰图像加载过程,因为上一次加载尚未完成,因此上一次加载返回损坏的视图。不过你可以这样处理 1)实例化后,立即使用延迟为100-200ms的处理程序在任意方向上反复(大约10次)翻转视图setCurrentItem(),这样原始的4将超出范围(如果您有屏幕外页面限制,我希望这是因为您的代码具有infinte特性)稍后将逐一创建 2)使用多个缓冲区对象 1个映像-8缓冲区 2个图像-每个图像有4个缓冲区 3个图像-每个图像有2个缓冲区。。。像这样的Android 具有少于4个视图的ViewPager循环,android,android-viewpager,carousel,Android,Android Viewpager,Carousel,我正在尝试使用ViewPager组件实现一个无限旋转木马。我以创建的视图为基础,但使用少于4个视图存在问题。因为视图已经就位。这一定是一种欺骗Viewpager在不同位置绘制相同视图/页面的方法。我遇到了相同的问题,自己找不到解决方案。但是我想仅仅使用1-4个视图是不可能的。问题是,所有视图(1-4个重复图像)将一次实例化(或至少在很短的时间间隔内实例化),这会干扰图像加载过程,因为上一次加载尚未完成,因此上一次加载返回损坏的视图。不过你可以这样处理 1)实例化后,立即使用延迟为100-200m
两者都不是理想的解决方案,但都对我有效。我也想知道你也尝试了什么 试试下面的技巧,我已经成功地用它制作了一个(人造的)无限
ListView
在适配器的getCount()
方法中,返回Integer.MAX\u值
然后在适配器的实例化项()
或销毁项()
中,使用位置%datasource.size()
此技巧源自。解决方案是在ViewPager中使用相同的子视图。要做到这一点,而不必将同一个子对象分配给父对象,就需要使用包含真实视图的ProxyView。从ViewGroup中扩展该假视图并覆盖Draw方法将实现此目的 您可能需要在OnDestoryItem方法中执行一些操作,以重新附加已分离的项。
我已经在这里发布了我的解决方案,嗨,沙克蒂,我不太明白你的解决方案。你能分享你的代码吗?对我来说,实现起来很复杂,代码分散。基本思想是让它们一个接一个地实例化,而不是一次全部实例化。试着做点什么让它发生。在缓冲区的情况下,您必须创建具有相同内容的多个ImageView。问题是,我需要在不同的位置使用相同的视图,因此我不能像其他实例那样多次实例化。一个已经依附于父母的孩子的问题也是如此。解决方案可以是在两个位置绘制视图。这在ViewPager的结构中更深入。嗨,Vinay,我已经使用了这个解决方案。问题是要使它在少于4个视图的情况下工作。