轮播图控件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,我知道这个类是做动画的,但是类库非常大比较占空间,为了一个轮播图少写几行代码和布局加载这么一个大类,框架我们轮播一般也不需要特别选框的动画显然是不是非常划算的,而且还有这么一个坑,所以还是实实在在自定义自己的轮播图吧,高内度,低耦合,一个优化好的项目显然不会调用集成太多的工具类的
阅读更多
想对作者说点什么? 我来说一句

完美slider类,解决很多BUG

2010年07月30日 2KB 下载

没有更多推荐了,返回首页

不良信息举报

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

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭