captain-miao / RecyclerViewUtils

[DEPRECATED] // RecyclerView Utils:refresh,load more,sticky header,expand,index
276 stars 68 forks source link

Load more view 的 view holder 不应该是 UnRecyclableViewHolder 吧? #24

Closed tgmerge closed 7 years ago

tgmerge commented 7 years ago

你好 :) 最近在参考这个 RecyclerViewUtils 改进自己的 RecyclerView 工具集,但发现 BaseWrapperRecyclerAdapter 中用了比较多的 notifyDataSetChanged(),动画蛮不自然的,尤其是 这里 以及其中提到的 #3 。

后来发现 这里 的 Load more view 的 view holder 不应该是 UnRecyclableViewHolder;换成 return new RecyclerView.ViewHolder(mLoadMoreFooterView) {}; 应该就可以了。

如果这个 ViewHolder 不能 recycle 的话,hideLoadMoreView() 再 showLoadMoreView() 就会出现 #3 提到的问题。

这样很多地方的 notifyDataSetChanged() 都能用细粒度的 notify 方法替代掉吧,感觉效果会好一些?

captain-miao commented 7 years ago

确定是 UnRecyclableViewHolder引起的?

3 是因为itemCount的变化,上一次notify还没完成。

我在研究看看~

tgmerge commented 7 years ago

我也没有仔细研究……项目后来换成自己写的 RecyclerView Adapter 了,当时试着换了一下 UnRecyclableViewHolder 而已。如果不是这个问题的话请关闭 Issue 吧 _(:3 谢谢