我有一個2列的RecyclerView和GridLayoutManager。 如何強制LayoutManager根據第一張截圖上的模板?現在我得到了第2張截圖的結果。GridLayoutManager中的不同(動態)項目高度
需要的結果是:
當前的結果:
我有一個2列的RecyclerView和GridLayoutManager。 如何強制LayoutManager根據第一張截圖上的模板?現在我得到了第2張截圖的結果。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));
非常感謝您! – BlizzedRu
「但不同高度的細胞不同。」儘管如此,你可以設置不同的行高度。例如,每個單元格都有圖像視圖,高度設置爲wrap_content,並在每個單元格中設置不同的圖像,然後每行將採用最大圖像的高度 –