轮播图控件ImagerSlider的BUG你知道吗?

原创 2016年10月09日 22:12:37
 像淘宝,京东的安卓轮播图大家应该都遇到过,大部分的实现是做一个viewpager,我也推荐这种做法,比较灵活,方便修改。对于轮播github上有这么一个专门针对轮播的项目AndroidImageSlider,很不幸第一次用发现了BUG,浪费了数小时都没能解决,

@Override public View initView() { View inflate = View.inflate(getContext(), R.layout.fragment_home, null); ButterKnife.inject(this, inflate); return inflate; } @Override public void initData() { requestImages();
//initSlider();在此处调用就没事
} private int shu=0; private void requestImages() { String url = Contants.API.SLIDERURL + 1; mOkHttpHelper.get(url, new SpotsCallBack<List<SliderBean>>(getContext()) { @Override public void onSuccess(Response response, List<SliderBean> sliderBeen) { //直接返回结果,用的非常方便 initSlider(sliderBeen); } @Override public void onError(Response response, int code, Exception e) { } }); } private synchronized void initSlider(List<SliderBean> mSlideBeans) { shu++; Toast.makeText(getContext(), "shu:" + shu, Toast.LENGTH_SHORT).show(); mSliderHomeFragment.stopAutoCycle(); if (mSlideBeans!=null&& mSlideBeans.size() ==6) { for (SliderBean slideBean : mSlideBeans) { TextSliderView textSliderView = new TextSliderView(getContext()); textSliderView.image(slideBean.getImgUrl()); textSliderView.description(slideBean.getName()); textSliderView.setScaleType(BaseSliderView.ScaleType.Fit); mSliderHomeFragment.addSlider(textSliderView); } } //设置slider的动画效果和指示器// mSliderHomeFragment.setPresetTransformer(SliderLayout.Transformer.Default);// mSliderHomeFragment.setPresetIndicator(SliderLayout.PresetIndicators.Center_Bottom);// mSliderHomeFragment.setCustomAnimation(new DescriptionAnimation()); mSliderHomeFragment.setDuration(30000); }

就是当用okhttp请求成功数据后在onSuccess方法内调用竟然会重复加载数次图片,每回切换都会先加载前面几张图片的动画,但是把加载方法放到okhttp请求外就好了,但是okhtpp请求是异步的,也就是数据没加载完就已经初始轮播图了,结果自然为空,切换一下界面 回来才会显示数据,非常古怪,经过各种测试都无法解决这个bug,应该是源码的bug,跟okHttpp结合的隐性bug,而且这个类库是两年以前很久没更新了,所以真的不推荐使用
  在看看类库
compile "com.android.support:support-v4:+"
compile 'com.squareup.picasso:picasso:2.3.2'
compile 'com.nineoldandroids:library:2.4.0'
compile 'com.daimajia.slider:library:1.1.5@aar'

引用slider可以理解,但是又加载了picasso,我知道这个类是做动画的,但是类库非常大比较占空间,为了一个轮播图少写几行代码和布局加载这么一个大类,框架我们轮播一般也不需要特别选框的动画显然是不是非常划算的,而且还有这么一个坑,所以还是实实在在自定义自己的轮播图吧,高内度,低耦合,一个优化好的项目显然不会调用集成太多的工具类的

解决ImageView部分图片不能显示的问题(图片已经损坏)

有时候,我们可以检测到有些图片,比如QQ 微信,当我们选择修改头像的时候,对于那些已经损坏的图片,它们会提供一张替换的图。 但是我们如何去判断读出来的图像是已经损坏的呢?用如下方法即可: Bit...
  • GeiZuoZuoZuo
  • GeiZuoZuoZuo
  • 2014年12月27日 19:36
  • 1508

weex问题:轮播图indicator(指示器),不显示

问题 官网demo正常https://weex-project.io/examples/indicator.html,用playground扫码打开,指示器就是不显示。解决方案 ...
  • u013474104
  • u013474104
  • 2017年02月13日 15:53
  • 1323

使用jQuery实现无缝轮播图

轮播图我们很常见的功能,可以使用原生的js进行实现,也可以使用jQuery进行实现,还可以使用H5C3进行实现,当然也可以使用swiper插件很方便的实现,这里先用jQuery实现一个无缝的轮播。 思...
  • k491022087
  • k491022087
  • 2017年01月04日 21:01
  • 2217

前端框架Vue(14)—— 利用 vue 过渡效果(transition)+定时器 实现轮播图通用组件

序论: 轮播图 相信都不会陌生,很多的网站都会有,而且实现的方式也是千变万化,可以利用封装好的 UI 库 (bootstrap),也可以原生的 JS 进行编写。但是其中,动画(transitio...
  • DOCALLEN
  • DOCALLEN
  • 2017年08月24日 16:49
  • 2682

ImageSlider使用体会

为了实现Banner,找了很多都没有成功实现。AndroidImageSlider不仅简单方便,用起来也很好,所以记录一下以防忘记 github地址:https://github.com/daima...
  • DreamerJane
  • DreamerJane
  • 2015年12月09日 09:33
  • 624

轮播大图框架-SliderLayout

轮播大图框架-SliderLayout的使用
  • zsr0526
  • zsr0526
  • 2017年03月29日 22:06
  • 1933

第三方轮播图控件SliderLayout使用

SliderLayout第三方轮播图的使用
  • m0_37855088
  • m0_37855088
  • 2017年05月05日 09:15
  • 1065

使用SliderLayout实现banner图片切换

要想使用SliderLayout实现实现banner图片切换需要在app目录下的build.gradle文件中配置 dependencies { compile "com.androi...
  • YiRanAiNi_
  • YiRanAiNi_
  • 2016年08月26日 16:28
  • 4086

滑动图片使用SliderLayout控件

com.daimajia.slider.library.SliderLayout
  • digitalcastle
  • digitalcastle
  • 2016年07月01日 14:28
  • 844

学习笔记 Tianmao 篇 SliderLayout 的使用

第一步 在 layout文件里放置SliderLayout
  • p4885056000
  • p4885056000
  • 2016年10月20日 23:00
  • 1868
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:轮播图控件ImagerSlider的BUG你知道吗?
举报原因:
原因补充:

(最多只允许输入30个字)