RecyclerView使用StaggeredGridLayou
2021-11-24 本文已影响0人
带带我
一般做瀑布流用这个,就不说了,主要说一下下面这种布局
![](https://img.haomeiwen.com/i6761051/964f71e2c4a04a5f.png)
设置适配器adapter
ManagerAdapter adapter = new ManagerAdapter(this, list);
recyclerView.setLayoutManager(new StaggeredGridLayoutManager(5, StaggeredGridLayoutManager.VERTICAL));
recyclerView.setAdapter(adapter);
主要是在adapter中为分组标题项设置宽度
@NonNull
@Override
public MyHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
MyHolder myHolder = null;
View view = null;
//在使用recyclerview做不同布局,都是用getItemViewType()方法,这个真不用说了,viewType=0标题项
if (viewType == 0){
view = LayoutInflater.from(mContext).inflate(R.layout.item_title_layout, parent, false);
//给itemView设置宽度就可实现上图UI
StaggeredGridLayoutManager.LayoutParams params = new StaggeredGridLayoutManager.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
params.setFullSpan(true);
myHolder = new MyHolder(view);
myHolder.itemView.setLayoutParams(params);
} else if (viewType == 1){
view = LayoutInflater.from(mContext).inflate(R.layout.item_content_layout, parent, false);
myHolder = new MyHolder(view);
}
return myHolder;
}