使用RecyclerView跨越多个列

DDu*_*man 48 android layout-manager android-recyclerview

所以我想要的是交错布局,但列表中的第一项需要跨越两列.前两行也是固定高度.除了第一个项目跨越两列,我的一切都在工作.

我正在使用带有StaggeredGridLayoutManager的RecyclerView.Adapter.似乎不是开箱即用的功能.我假设我可以制作一个自定义布局管理器我不知道从哪里开始.我尝试过搜索,但我找不到任何关于如何让项目跨越多列的信息.

下面的图片是我在列表中寻找的内容.

交错布局

mat*_*ato 50

目前,StaggeredGridLayoutManager仅支持跨越所有列的视图(对于垂直配置的布局),而不支持任意数量的列.

如果您仍希望在所有列中跨越它们,则应在适配器实现中执行此操作:

public final void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int position) {

    StaggeredGridLayoutManager.LayoutParams layoutParams = (StaggeredGridLayoutManager.LayoutParams) viewHolder.itemView.getLayoutParams();
    layoutParams.setFullSpan(true);
}
Run Code Online (Sandbox Code Playgroud)

恕我直言,StaggeredGridLayoutManager仍在大力发展,谷歌希望我们用它来反馈:(


ljm*_*gui 9

我为跨垂直配置的布局跨越所有列所做的是LayoutParams在适配器实现中创建new 并将full span设置为true:

@Override
public void onBindViewHolder(final RecyclerView.ViewHolder viewHolder, int position) {

    StaggeredGridLayoutManager.LayoutParams layoutParams = new StaggeredGridLayoutManager.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
    layoutParams.setFullSpan(true);
    viewHolder.itemView.setLayoutParams(layoutParams);
}
Run Code Online (Sandbox Code Playgroud)