【发布时间】:2016-04-30 22:39:27
【问题描述】:
我有一个包含 2 列的 RecyclerView 和 GridLayoutManager。 如何强制 LayoutManager 与第一个屏幕截图上的模板一致?现在我得到了第二张截图的结果。
需要结果:
当前结果:
【问题讨论】:
标签: android height android-recyclerview rows gridlayoutmanager
我有一个包含 2 列的 RecyclerView 和 GridLayoutManager。 如何强制 LayoutManager 与第一个屏幕截图上的模板一致?现在我得到了第二张截图的结果。
需要结果:
当前结果:
【问题讨论】:
标签: android height android-recyclerview rows gridlayoutmanager
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));
【讨论】: