【发布时间】:2020-05-14 18:14:46
【问题描述】:
我正在尝试在回收站或网格视图中实现以下列表项的形成:
1
1 1
1
1 1
1
其中1 是单个视图持有者(列表项)。我的列表项都具有相同的宽度和高度。
我尝试使用带有网格布局管理器的 recyclerview,如下所示:
recyclerView.setLayoutManager(new GridLayoutManager(getContext(),2));
但这将严格显示 2 列。
我已经尝试将StaggeredGridLayoutManager 也与我的recyclerView 一起使用,如下所示:
StaggeredGridLayoutManager manager = new StaggeredGridLayoutManager(2,StaggeredGridLayoutManager.VERTICAL);
但这只会扩展我的列表项以适应 2 列列表,类似于 GridLayoutManager。
我还尝试在适配器中更改 3 个列表视图中 1 个的宽度,但一个视图的宽度不会影响另一个视图的位置。
当前设置如下所示:
adapterPre = new CategoryListAdapter(this, getContext(),GeneralUtils.isLoggedIn());
RecyclerView premadeLists = view.findViewById(R.id.practise_recycler);
GridLayoutManager gridLayoutManager = new GridLayoutManager(getContext(),2);
gridLayoutManager.setSpanSizeLookup(new CustomSpanSizeLookup());
premadeLists.setLayoutManager(gridLayoutManager);
premadeLists.setHasFixedSize(false);
premadeLists.setAdapter(adapterPre);
CustomSpanSizeLookup:
class CustomSpanSizeLookup extends GridLayoutManager.SpanSizeLookup {
@Override
public int getSpanSize(int position) {
return position % 2 == 0 ? 2 : 1;
}
}
【问题讨论】:
标签: android gridview android-recyclerview