将任意RecyclerView子项渲染到Canvas?

时间:2017-01-16 04:49:25

标签: android android-recyclerview android-canvas

尝试编写一个Java方法,该方法可以接收RecyclerView(或它的适配器或其布局管理器)并吐出一个大的位图,这个位图是所有RecyclerView的子级的渲染,就像它们看起来一样如果设备的屏幕大小是整个有限列表的整个长度。

mRecyclerView.draw(canvas)用于呈现所有当前可见的子项,但mRecycler.getChildAt(x)其中x>可见位置始终返回null。

对所有方法开放,因为真正唯一的目标是使用Android现有的视图渲染系统来生成这个大位图,而不必自定义编写我自己的数据 - >位图代码

1 个答案:

答案 0 :(得分:1)

由于RecyclerView的工作方式(在需要时重新使用视图并将数据绑定到视图),所有RecyclerView视图在内存中完全可用时都没有任何给定的时间。如果中断用户界面不是问题,您可以使用RecyclerView.scrollToPosition滚动RecyclerView以强制它呈现所有视图。您可以在可见时收集每个部分的位图,并在必要时组合位图。