我正在使用LinearLayoutManager
创建水平对齐的RecyclerView
。由于我正在绘制项目的边界,因此视图会被回收,因此滚动期间左外侧和右侧邻居的重叠绘图会消失。
有没有办法指示Adapter或LayoutManager始终保持x + 2
个视图?
我希望RecyclerView.setItemViewCacheSize( int size )
为我解决这个问题,但这些观点似乎仍然存在分歧。
答案 0 :(得分:0)
您不能使用RecyclerView
在LinearLayoutManager
的范围之外绘制,并且希望视图在其边界离开RecyclerView的边界后继续绘制。
你应该更好地表达你的问题。您提供的细节很少,并且希望有人帮助您制作不适当的解决方案。
您应该在除了视图0之外的每个视图之前添加RecyclerView.ItemDecoration
,例如https://gist.github.com/alexfu/0f464fc3742f134ccd1e
为什么在每个视图之前添加分隔符?因为当我们添加/删除面包屑时,我们不需要在之后有一个分隔符之间来回更改最后一个视图。这样做的工作量更少,性能更好。
答案 1 :(得分:0)
这不回答“保持n + 1个视图附加问题”,但是关于抽出RecyclerView界限的问题
可以像这样获得拉出界限的相同效果。
使RecyclerView与另一个重叠的View TRULY重叠(通过将它们保存在RelativeLayout中的相同空间而不是通过clipChildren = false来实现,这只是一种视觉错觉)。
指定一个标题视图(或页脚,取决于另一个视图是在顶部还是底部),其大小与其他重叠View到RecyclerView的大小相同。
(关于添加标题视图RecyclerView header and footer)