Android RecyclerView/StaggedGridLayoutManager:强制将连续视图组放入同一跨距/列中
目前,我正在使用RecyclerView显示一组具有不同视图类型的视图,其中一组连续的项目属于一起:一个标题、一组可变的内容项目和一个分隔符/页脚。 现在我也希望我的UI在更大的设备上看起来更好,也就是使用多个窗格,所以我切换到了一个交错的布局管理器。这里的问题是,它在所有跨度之间均匀分布视图,这意味着一个组分布在多个柱上。 因此,我想指定布局管理器将一组连续的视图放入同一跨度中,然后才将下一个组放入下一个组中。 我使用的LayoutManager是否有可能做到这一点?我可以修改它,使其像那样工作,而不只是复制和编辑它吗?支持自由民主党:有没有计划引入这种行为Android RecyclerView/StaggedGridLayoutManager:强制将连续视图组放入同一跨距/列中,android,android-recyclerview,android-support-library,staggeredgridlayout,Android,Android Recyclerview,Android Support Library,Staggeredgridlayout,目前,我正在使用RecyclerView显示一组具有不同视图类型的视图,其中一组连续的项目属于一起:一个标题、一组可变的内容项目和一个分隔符/页脚。 现在我也希望我的UI在更大的设备上看起来更好,也就是使用多个窗格,所以我切换到了一个交错的布局管理器。这里的问题是,它在所有跨度之间均匀分布视图,这意味着一个组分布在多个柱上。 因此,我想指定布局管理器将一组连续的视图放入同一跨度中,然后才将下一个组放入下一个组中。 我使用的LayoutManager是否有可能做到这一点?我可以修改它,使其像那样工
请告诉我是否应该提供任何其他信息,以及当某些信息不够清晰时。您可以使用支持库的
StaggedGridLayoutManager实现所需的布局;您需要使每个“组”项(例如header1+1-3+footer)成为适配器返回的单个视图。此视图本身可以是一个回收视图
也就是说,您将有一个外部RecyclerView
和一个StaggedGridLayoutManager
以及多个内部RecyclerView
s和LinearLayoutManager
s。您可能可以在内部RVs之间共享一个RecycledViewPool
。您必须做一些练习,为内部RVs创建合适的适配器,但这可能比编写自己的LayoutManager
我使用了你的建议,效果非常好,尽管我仍然需要解决我的协调人布局的一些问题,因为当你在孩子RecyclerView
上滑动时,它不会得到滑动反馈。另外,我不知道有共享视图池的选项,非常有趣!编辑:我意识到我可以只使用setNestedScrollingEnabled(false)
。美好的