ViewPager 轮播图脱坑

      最近项目里需要一个轮播图,去循环轮播三张广告图,一开始使用的是阿里开源的banner,很好用,省去了一系列繁琐的步骤,但是呢,最近改界面,新的UI设计师给出的轮播图是底部指示器和图片有一定的距离的,这就尴尬了,因为github上能找打的viewpager轮播图库,基本上都是指示器和图片重叠的 ,对于这种定制化的界面,只能自己动手写了,想省事是不可能的了。

说做就做,布局里使用V4包下的viewpager控件,创建适配器,这些大家都很熟悉,就不再一一赘述,运行后,问题来了,老是会出现如下错误


这个也很好久解决,意思就是说,你在添加一个视图的时候必须要把他所在的父类视图移除掉。

嗯,会看了下代码,决定在adapter里按照提示移除父类视图:于是改成了这样子:


在adapter实例化每个view的时候先去获取parent,如果存在,那么就先去移除,个人感觉很完美了,运行一下,OK了,心里窃喜,

但是在配合rv刷新的时候还是继续报这个错误,这就奇怪了,百度了一番,也是没有找到解决办法。

      既然找不到解决方案,就只能自己捋捋代码,看看逻辑的问题了。原来,我是在Fragment里实例了一个Int 类型的图片资源数组,再去遍历这个数组,遍历的同时new出来一个新的imagerview ,添加到一个list里面。最后才是把这个盛装图片的集合传到adapter里面,那么问题会不会是处在 new Image这个步骤里呢????


我感觉八九不离十已经找到问题的症结了,在new image的时候需要传一个context上下文对象,或许就这里除了问题了。

那么,这就好解决了,在布局里声明一个imageview控件 不就好了吗,是吧,哈哈哈,后来,我这样做了,真的是不会再报错了


至此, 脱坑了,轮播图不会再出现任何异常了。希望记录下加深下印象,同时 能够帮助到还在坑里挣扎的人。上班了。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 经常遇到要给tableView设置背景图片的问题,但如果直接设置背景 backgroundView的话,背景图不...
    SHUTUP阅读 7,990评论 1 3
  • 我们正处于一个时代 我们将是参与者 和见证者 你不激动吗?
    伯兰阅读 253评论 0 0
  • 本周笑来老师跟我们聊了聊如何提高个人的价值(价格)——成为对别人有用的人。当老板觉得你有用的时候(工作能力突出,业...
    猪虎老豆Shadow阅读 630评论 0 5
  • 1 以下摘自我的面试对话。(真人真事) 我:“我相信很可能有外星人。” 老板:“是啊。” 我:“因为宇宙那么大,有...
    Graceland阅读 2,476评论 35 29
  • 海藻昏黄,行人匆匆,未见君子,言何庸庸。
    leo_s阅读 232评论 5 5