RecyclerView分离视图仍然可见

目前的情况

我正在使用这个库https://github.com/kanytu/android-parallax-recyclerview来实现RecyclerView的视差效果。 到现在为止还挺好。 不过我希望得到一个像Google报亭这样的效果,标题仍然低于卡片。

问题

问题是,当列表的第一个元素触及父视图的顶部时,RecyclerView(或LinerLayoutManager)会分离标题视图:

在此处输入图像描述

正如您所看到的那样,第一张cardview触及顶部的那一刻就是RecyclerView分离标题的那一刻。

我确信逻辑本身没有问题,当卡到达顶部时,我得到RecyclerView.findViewHolderForPosition(0) == null 。 certificate标题已被回收。

试过的解决方案

我尝试过很多东西:

ViewHolder.setIsRecyclable使用此方法将持有者设置为不回收者不会产生任何影响。

LayoutManager.ignoreView我尝试将视图标记为从scapping和recycle中忽略。 结果是一个例外: Trying to recycle an ignored view holder. You should first call stopIgnoringView(view) before calling recycle. Trying to recycle an ignored view holder. You should first call stopIgnoringView(view) before calling recycle.

setItemViewCacheSize什么都不做。 尝试调用setItemViewCacheSize(50)并且它不对标头做任何事情。

setMaxRecycledViews尝试将viewType = HEADER的回收视图的最大值设置为0,它仍然可以回收它。

结论

所以我怀疑是否有任何方式标记该项目没有分离,直到我订购(如检查它是否仍然可见,然后分离它)。

关于它的github还有一个问题: https : //github.com/kanytu/android-parallax-recyclerview/issues/7

您可以将新设计支持库的CoordinatorLayout与您的recyclerview一起使用,并产生相同的效果,不会出现这样的问题。

检查此链接: http : //android-developers.blogspot.com/2015/05/android-design-support-library.html