Android 开发技术分享

使用ViewPager2导致使用RecyclerView复杂页面

2020-11-17  本文已影响0人  不思进取的码农

记录一个bug事件

在做一个纵滑直播间的需求们,当时想到使用ViewPager2更方便,更好一些.但是没想到埋下了一个坑.
当时另一个同事在做商品详情页改版的需求,本身两个需求是在不同分支上各自打包然后测试完成的
在最后合并代码的时候最最后回归测试的时候,商品详情页滑动卡顿,特别是在向上滑动的时候尤为明显!!

使用ViewPager2的版本


androidx.viewpager2:viewpager2:1.0.0

查找原因

本质上商品详情页和直播之间并无直接关系,找原因分了3

最后我们是引入了ViewPager2后开始有出现问题

问题分析

ViewPager2 怎么导致商品详情页卡顿呢,我想到的唯一可能是RecyclerView 因为两者都有用到RecyclerView
查看External LIbraries 下的引用包,我们发现的问题.

RecyclerView.png

我们发现里面有两个版本的RecyclerView

但是实际我们项目中引用的RecyclerView是:

androidx.recyclerview:recyclerview:1.0.0

并没有引用1.1.0版本

最后我们发现是ViewPager2使用了RecyclerView1.1.0版本,而gradle会默认使用引用的最新版本 然后这个版本导致了我们商品详情页卡顿

解决问题

因为目前没有发现为什么RecyclerView1.1.0 的版本导致我们详情页,我们的处理方式是排除1.1.0 版本的RecyclerView

    api (rootProject.ext.dependencies["viewpager2"]) {
        exclude module: 'recyclerview'
    }

当前的遗憾

我们并没有找到为什么使用RecyclerView1.1.0版本会导致我们商品详情页卡顿,而我们在不使用RecyclerView1.1.0 后,ViewPager2的预加载好像也失去了效果.如果有这方面研究的留言,我们当时的问题只在商品详情页特别是加载大图的holder下非常明显

(每天学习一点点.每天进步一点点,分享不宜路过点个赞呀,喜欢的点个关注后续更新不断)

上一篇 下一篇

猜你喜欢

热点阅读