youth5201314 / banner

🔥🔥🔥Banner 2.0 来了!Android广告图片轮播控件,内部基于ViewPager2实现,Indicator和UI都可以自定义。
Apache License 2.0
12.92k stars 2.51k forks source link

预加载问题:默认首次不预加载(ScrollSpeedManger引发) #1246

Open Fylan0 opened 2 months ago

Fylan0 commented 2 months ago

预加载:默认首次不预加载,预加载数量也不是SDK中设置的 2(ScrollSpeedManger引发)

v:2.2.3

使用配置:

问题

首次创建后,ImageAdapter只会创建第一个。当触发滑动后才会创建第二个item(可通过日志测试)。 当第二章图片较大,如果滑动才触发加载会导致先展示不出来,不符合预加载。

image

内部使用的setOffscreenPageLimit未生效。 mViewPager2.setOffscreenPageLimit(2);

原因:

ScrollSpeedManger.reflectLayoutManager(this); 通过反射替换了ViewPager2中RecyclerView中的LinearLayoutManager。

ViewPager2中LinearLayoutManagerImpl默认会通过mOffscreenPageLimit处理预加载(计算屏幕外需要加载item)。

image

适配: 如果保留ScrollSpeedManger,需要适配ViewPager2中LinearLayoutManagerImpl中原有方法