Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android RecyclerView/StaggedGridLayoutManager:强制将连续视图组放入同一跨距/列中_Android_Android Recyclerview_Android Support Library_Staggeredgridlayout - Fatal编程技术网

Android RecyclerView/StaggedGridLayoutManager:强制将连续视图组放入同一跨距/列中

Android RecyclerView/StaggedGridLayoutManager:强制将连续视图组放入同一跨距/列中,android,android-recyclerview,android-support-library,staggeredgridlayout,Android,Android Recyclerview,Android Support Library,Staggeredgridlayout,目前,我正在使用RecyclerView显示一组具有不同视图类型的视图,其中一组连续的项目属于一起:一个标题、一组可变的内容项目和一个分隔符/页脚。 现在我也希望我的UI在更大的设备上看起来更好,也就是使用多个窗格,所以我切换到了一个交错的布局管理器。这里的问题是,它在所有跨度之间均匀分布视图,这意味着一个组分布在多个柱上。 因此,我想指定布局管理器将一组连续的视图放入同一跨度中,然后才将下一个组放入下一个组中。 我使用的LayoutManager是否有可能做到这一点?我可以修改它,使其像那样工

目前,我正在使用RecyclerView显示一组具有不同视图类型的视图,其中一组连续的项目属于一起:一个标题、一组可变的内容项目和一个分隔符/页脚。 现在我也希望我的UI在更大的设备上看起来更好,也就是使用多个窗格,所以我切换到了一个交错的布局管理器。这里的问题是,它在所有跨度之间均匀分布视图,这意味着一个组分布在多个柱上。 因此,我想指定布局管理器将一组连续的视图放入同一跨度中,然后才将下一个组放入下一个组中。 我使用的LayoutManager是否有可能做到这一点?我可以修改它,使其像那样工作,而不只是复制和编辑它吗?支持自由民主党:有没有计划引入这种行为


请告诉我是否应该提供任何其他信息,以及当某些信息不够清晰时。

您可以使用支持库的
StaggedGridLayoutManager实现所需的布局;您需要使每个“组”项(例如header1+1-3+footer)成为适配器返回的单个视图。此视图本身可以是一个
回收视图


也就是说,您将有一个外部
RecyclerView
和一个
StaggedGridLayoutManager
以及多个内部
RecyclerView
s和
LinearLayoutManager
s。您可能可以在内部RVs之间共享一个
RecycledViewPool
。您必须做一些练习,为内部RVs创建合适的适配器,但这可能比编写自己的
LayoutManager

我使用了你的建议,效果非常好,尽管我仍然需要解决我的
协调人布局的一些问题,因为当你在孩子
RecyclerView
上滑动时,它不会得到滑动反馈。另外,我不知道有共享视图池的选项,非常有趣!编辑:我意识到我可以只使用
setNestedScrollingEnabled(false)
。美好的