RecyclerView分离视图仍然可见

时间:2015-01-22 15:26:25

标签: android android-recyclerview

当前情况

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

问题

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

enter image description here

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

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

尝试过的解决方案

我尝试过很多东西:

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

LayoutManager.ignoreView我尝试将视图标记为在删除和回收时被忽略。结果是一个例外说: 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

1 个答案:

答案 0 :(得分:1)

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

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