我使用这个库https://github.com/kanytu/android-parallax-recyclerview来实现对RecyclerView的视差效果.到现在为止还挺好.不过,我希望得到一个效果,如Google书报摊,标题仍然在卡片上.
问题
问题是RecyclerView(或LinerLayoutManager)在列表的第一个元素触及父视图顶部的那一刻分离头视图:
正如你可以看到第一张cardview触摸顶部的那一刻RecyclerView分离标题的那一刻.
我确信在逻辑本身没有问题我得到RecyclerView.findViewHolderForPosition(0)== null当卡到达顶部.证明标题被回收.
试用解决方案
我尝试了许多事情,如:
ViewHolder.setIsRecyclable使用这种方法设置持有者不回收者没有任何效果.
LayoutManager.ignoreView我尝试标记视图被忽略,从而可以进行分层和回收.结果是一个例外说:
试图回收一个被忽略的视图持有者.在调用回收之前,应先调用stopIgnoringView(view).
setItemViewCacheSize不做任何事情尝试调用setItemViewCacheSize(50),它不会对标题做任何事情.
setMaxRecycledViews尝试将viewType = HEADER的回收视图的最大值设置为0,并且它仍然循环使用.
结论
所以我怀疑是否有任何标记的项目没有分离,直到我订购(如检查是否仍然可见,然后分离).
关于github也有一个问题:https://github.com/kanytu/android-parallax-recyclerview/issues/7
解决方法
检查此链接:http://android-developers.blogspot.com/2015/05/android-design-support-library.html