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

2021-06-07  本文已影响0人  你的益达233

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

            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);
上一篇 下一篇

猜你喜欢

热点阅读