在做项目时使用瀑布流时,我们通常会想到使用recyclerview的StaggeredGridLayoutManager来实现瀑布流,并且把item布局的高度设为wrap_content,觉得这样就可以实现瀑布流了。
但是等写完代码一看发现item的位置显示错乱了,这是因为我们高度使用了wrap_content,但是如果我们使用固定高度就无法实现瀑布流了,这个时候就需要我们在adapter里动态设置高度就可以解决这个问题。
以下代码为随机设置item高度:
ViewGroup.LayoutParams lp = viewHolder.imgView.getLayoutParams();
int scale = new Random().nextInt(5);
lp.height= 100 * scale;
lp.width= RecyclerView.LayoutParams.MATCH_PARENT;
viewHolder.imgView.setLayoutParams(lp);
你也可以根据项目实际情况设置不同item的高度。