1、问题描述
最近才发现的NestedScrollView 嵌套RecyclerView,当RecyclerView内数据量一多起来,简直就是一场灾难
Recyclerview的最大优点自然是在内部view的复用,这样不管是从内存还是流畅性上都有很大的优化,但是一旦嵌套到
NestedScrollView 中,Recyclerview的内容就会一次行加载完成,再也没有什么复用,数据量一多,结果可想而知(
奇怪的是 测试机小米5s-安卓7.0-api24不卡,小米8-安卓9-api28, 小米9卡的不行。。这是为啥)
2、问题分析
getItemViewType(获取显示类型,返回值可在onCreateViewHolder中拿到,以决定加载哪种ViewHolder)
onCreateViewHolder(加载ViewHolder的布局)
onViewAttachedToWindow(当Item进入这个页面的时候调用)
onBindViewHolder(将数据绑定到布局上,以及一些逻辑的控制就写这啦)
onViewDetachedFromWindow(当Item离开这个页面的时候调用)
onViewRecycled(当Item被回收的时候调用)
通过debug或者打印log,我们可以看到,无论我们怎么滑动,onViewDetachedFromWindow,onViewRecycled都不被调用了,
也就是说,view包括图片资源都不会被回收!!
使用NestedScrollView 嵌套RecyclerView无非就是因为, 当前页面有多个需要