recyclerView滞后滚动

时间:2019-02-26 08:18:07

标签: android android-recyclerview memory-leaks lottie-android

我有一个recyclerView带有匹配的父项。在recyclerView项中,我有48个相对布局和一个背景,并且滚动时没有任何问题。由于我在项目中添加了lottie animationView,因此recyclerView滚动但有滞后。我试图更改缓存大小,在它与窗口分离时暂停动画,压缩背景图像,使用另一个线程,将图像转换为位图,但是没有帮助。

我应该尝试绘制视图还是类似的东西,或者还有其他可以做的事情?

2 个答案:

答案 0 :(得分:0)

在搜索和测试另一种播放动画的方式一周之后,我找到了解决方案 解决方案是使用不同的方法来播放gif之类的动画,但是gif具有透明性,如果您的动画具有透明部分,则该动画具有非常难以使用的白色边框,另一种方法是使用apng,apng是png的动画版本,它解决了透明性的问题,但是在recyclerView中它有问题,例如当您向上或向下滚动recyclerView时,该动画不显示在屏幕上,它将停止并且您应该在连接到任何动画时设置动画Windows,它会降低性能,但是此问题的最终解决方案是什么? webp。 webp是由Google创建的一种格式,您可以在带有fresco库的android系统中使用它,并使用webp动画图像,该图像没有透明性问题,并且性能非常高,实际上动画尺寸小于抽签动画! 并且非常易于使用,我添加了该库,并轻松调用它:

 DraweeController controller = Fresco.newDraweeControllerBuilder()
            .setUri(yourUri)
            .setAutoPlayAnimations(true)
            .build();

并轻松将控制器设置为SimpleDraweeView:

simpleDraweeView.setController(controller);

这是我对自己的问题的解决方案, 希望对您有帮助。

答案 1 :(得分:0)

尝试将recyclerview放在NestedScroll View的旁边。 并在recyclerView中放入nestedscrollingEnabled = false。