最近做项目遇到了一些关于recyclerview问题,为了避免再次踩坑在这记下自己问题。
1.recyclerview嵌套导致数据刷新错乱和内部ecyclerview不能点击,数据不能刷新
解决方案:
1.内部ecyclerview不能点击问题
可以对内部嵌套ecyclerview设置onTouchEvent事件,然后不处理事件直接调用父类的onclik事件
2.recyclerview数据刷新不起作用。
当数据添加后调用adapter.notifyDataSetChanged(); 后数据没有改变,贴上部分代码adapter中数据(list)
设置list
获取数据
改变后调用notifyDataSetChanged回去刷新整个界面不起作用,后面发现我在项目中数据没有刷新是因为我每次去调用数据库数据时会去新建一个list,所以相当于调用notifyDataSetChanged前后的list数据根本不是一个数据引用,,所以调用notifyDataSetChanged没有反应,因为adapter刷新数据要对应同一个对象也就是一个地址。一般数据不是整个界面刷新,我们可以对数据进行局部刷新,如果对整个界面进行刷新会出新界面闪问题,这个是因为动画原因。
3.嵌套引起的数据错乱
一般我们不必使用嵌套时候我们可以直接使用其他方式去加载数据,因为数据嵌套会影响性能