美文网首页
Android开发防止SliderLayout重新刷新数据时闪白

Android开发防止SliderLayout重新刷新数据时闪白

作者: 你的益达233 | 来源:发表于2021-06-07 15:55 被阅读0次

有问题的做法:一开始是按照如下的做法

            sliderLayoutTb.removeAllSliders();
            for (MsgTBListResult.DataBean.ListBean listBean: dataBean.getList()){
                sliderLayoutTb.addSlider(new TbSliderView(getContext(),listBean));
            }
            sliderLayoutTb.setPagerTransformer(false, new VerticalTransformer());
            sliderLayoutTb.setDuration(1500);
            sliderLayoutTb.setIndicatorVisibility(PagerIndicator.IndicatorVisibility.Invisible);

感觉没问题,但是每次获取新数据来设置时就有1.5s的空白。体验不好

解决思路:后面我发现第一次加载时没这个问题。就在想是不是第一次先显示数据再执行动画。

解决方案:每次都是新的SliderLayout

示例代码:

                fl_tb_content.removeAllViews();
                sliderLayoutTb = new SliderLayout(getContext());
                FrameLayout.LayoutParams stParams = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
                sliderLayoutTb.setLayoutParams(stParams);
                fl_tb_content.addView(sliderLayoutTb);
                for (MsgTBListResult.DataBean.ListBean listBean: dataBean.getList()){
                    sliderLayoutTb.addSlider(new TbSliderView(getContext(),listBean));
                }
                sliderLayoutTb.setPagerTransformer(false, new VerticalTransformer());
                sliderLayoutTb.startAutoCycle(0,3000,true);
                sliderLayoutTb.setIndicatorVisibility(PagerIndicator.IndicatorVisibility.Invisible);

相关文章

网友评论

      本文标题:Android开发防止SliderLayout重新刷新数据时闪白

      本文链接:https://www.haomeiwen.com/subject/odileltx.html