我有一个带有 2 列的 RecyclerView 和 GridLayoutManager。如何强制 LayoutManager 与第一个屏幕截图上的模板一致?现在我得到了第二张截图的结果。
需要结果:
当前结果:
我有一个带有 2 列的 RecyclerView 和 GridLayoutManager。如何强制 LayoutManager 与第一个屏幕截图上的模板一致?现在我得到了第二张截图的结果。
需要结果:
当前结果:
GridLayoutManager
将使用网格,您可以为不同的单元格设置一些跨度,但不能设置不同的高度。
你想要的是一个StaggeredGridLayoutManager
. 如果它们适合,这只会将项目放在屏幕上,从而产生您需要的结果。如果需要,您还可以使用setGapStrategy
.
这真的很容易。您必须将此管理器添加到 RecycleView:
recyclerView.setLayoutManager(new StaggeredGridLayoutManager(mColumnCount, 1));
就我而言,它看起来像这样:
Context context = view.getContext();
RecyclerView recyclerView = (RecyclerView) view;
if (mColumnCount <= 1) {
recyclerView.setLayoutManager(new LinearLayoutManager(context));
} else {
recyclerView.setLayoutManager(new StaggeredGridLayoutManager(mColumnCount, 1));
}
recyclerView.setAdapter(new MyItemRecyclerViewAdapter(DummyContent.ITEMS, mListener));