Android NestedScrollView嵌套RecyclerView的问题
问题出现原因
想做到这么一种效果,页面中既有轮播图,又有RecyclerView,当RecyclerView上滑时,轮播图会消失。
而这样就会出现一个问题。
具体的问题
打印出log,分别在适配器中的onBindViewHolder和onCreateViewHolder 也打印log。
这里准备的数据有52条,结果这一下全部加载出来了,这样就造成内存吃紧的情况。
而且我们加载更多数据的时候,也会出现这种情况。
按照我们正常的RecyclerView的使用,我们的onCreateViewHolder 不会有么多次的调用,只会有展示窗口的大小能容纳下的item个数。
onBindViewHolder 是正常的,它会每次给展示的几个item 动态更换内容,从而完成对item的复用。
但是这里每一次都会调用(它的调用就意味着对象的创建)。这就问题蛮大了。
通过获得Recyclerview的高度,就会发现Recyclerview高度有点长的过分了。
这里的问题就在于NestedScrollView嵌套RecyclerView 会出现这情况。
解决方案
因为NestedScrollView,导致RecyclerView 全部加载出来了。
只需要给我们的RecyclerView 动态的设置一个固定的长度。这样RecyclerView就能根据手机屏幕展示的大小,从而简单的调用几个onCreateViewHolder()。不会想之前那样多次调用了。
具体解决
怎么解决已经有了思路,就获得屏幕长度即可,这里说的屏幕长度,是指的完全展示RecyclerView所需的