Different (dynamic) items height in GridLayoutManager

99封情书 提交于 2019-12-29 06:13:08

问题


I have a RecyclerView and GridLayoutManager with 2 columns. How can I force LayoutManager to be according with template on the first screenshot? Now I have result as on the 2th screenshot.

Need result:

Current result:


回答1:


GridLayoutManager will use a grid, and you can set some span, but not different heights for different cells.

What you want is a StaggeredGridLayoutManager. This will just put the items on the screen if they fit, leading to your needed result. You can also change the reordering behavior, if you want to, by using setGapStrategy.




回答2:


It's really easy. You have to add this manager to RecycleView:

recyclerView.setLayoutManager(new StaggeredGridLayoutManager(mColumnCount, 1));

in my case it's look like this:

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));


来源:https://stackoverflow.com/questions/34978737/different-dynamic-items-height-in-gridlayoutmanager

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!