Android 将任意RecyclerView子对象渲染到画布?

Android 将任意RecyclerView子对象渲染到画布?,android,android-recyclerview,android-canvas,Android,Android Recyclerview,Android Canvas,尝试编写一个Java方法,该方法可以接收RecyclerView(或者它的适配器或布局管理器),并输出一个大位图,该位图是所有RecyclerView子对象的呈现,如果设备的屏幕大小是整个有限列表的整段长度,那么这些子对象就会显示出来 mRecyclerView.draw(canvas)用于渲染所有当前可见的子对象,但是mRecycler.getChildAt(x)其中x>可见位置始终返回null 任何方法都可以,因为唯一的目标是使用Android现有的视图渲染系统生成这个大位图,而不必根据Re

尝试编写一个Java方法,该方法可以接收RecyclerView(或者它的适配器或布局管理器),并输出一个大位图,该位图是所有RecyclerView子对象的呈现,如果设备的屏幕大小是整个有限列表的整段长度,那么这些子对象就会显示出来

mRecyclerView.draw(canvas)
用于渲染所有当前可见的子对象,但是
mRecycler.getChildAt(x)
其中x>可见位置始终返回null


任何方法都可以,因为唯一的目标是使用Android现有的视图渲染系统生成这个大位图,而不必根据RecyclerView的工作方式自定义编写自己的数据->位图代码(重用视图并在需要时将数据绑定到视图)没有任何给定的时间可以让所有RecyclerView视图在内存中完全可用。如果不存在中断用户界面的问题,您可以使用RecyclerView.scrollToPosition在RecyclerView中滚动,强制它呈现所有视图。您可以在可见时收集每个部分的位图,并在必要时组合位图。

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

您所要求的与RecyclerView的观点相违背,即所有项目均未分配视图以提高效率。如果你想这样做,最好不要使用RecyclerView,而只使用一个巨大的ScrollView(并且接受你很快就会去OOM,而不是更晚)。你所要求的与RecyclerView的观点背道而驰——所有项目都没有分配视图以提高效率。如果你想这样做,最好不要使用RecyclerView,而只是使用一个巨大的ScrollView(并且接受你很快就会去OOM,而不是很晚)。