NestedScrollView和Paging3的分页加载BUG

在NestedScrollView中嵌套使用RecyclerView配合Paging3分页加载时,出现循环加载导致页面卡顿。问题在于NestedScrollView加载所有Item触发Paging3,而Paging3在边界触发分页,造成无限循环。解决方案包括避免使用NestedScrollView嵌套,或改用CoordinatorLayout等组件来实现需求。


关于NestedScrollView和Paging3一起使用的bug,其实更应该说是NestedScrollView和RecyclerView一起使用时产生的“问题”。

Bug还原

使用NestedScrollview嵌套竖向的RecyclerView时,同时使用Paging3分页加载库实现RecyclerView的分页加载。NestScrollView最终导致Paging3分页加载循环加载,即进入页面后,会不断进行分页加载,直到所有页面加载完成,快速连续的分页加载导致页面滑动卡顿。

在这里插入图片描述

上图中,NestedScrollView嵌套一个RecyclerView和其他控件,进入页面后,Paging3的adpter预设一页8个Item,所以第一次应只加载8个Item,只有当屏幕滚动到第8个Item时触发分页加载,事实上在进入页面后,就会不断触发Paging3的分页加载,第二张图显示第9-16号Item被加载,之后每页的Item都被分页加载出来。

组件简介

NestedScrollView,即支持嵌套滑动的ScrollView,被官方推荐和RecyclerView一起使用解决嵌套滑动的问题,可以在NestedScrollView中嵌套RecyclerView+其他控件,解决ScrollView会出现的滑动冲突问题,但NestedScrollView本身就有很多问题,常见问题见NestedScrollView、RecycleView、ViewPager 等布局方面的常见问题汇总,及解决

Paging3,Android Jetpack的一部分,Paging库可帮助您加载和显示来自本地存储或网络中更大的数据集中的数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CheatGZ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值