有问题的做法:一开始是按照如下的做法
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);
网友评论