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

 像淘宝,京东的安卓轮播图大家应该都遇到过,大部分的实现是做一个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,我知道这个类是做动画的,但是类库非常大比较占空间,为了一个轮播图少写几行代码和布局加载这么一个大类,框架我们轮播一般也不需要特别选框的动画显然是不是非常划算的,而且还有这么一个坑,所以还是实实在在自定义自己的轮播图吧,高内度,低耦合,一个优化好的项目显然不会调用集成太多的工具类的
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值