关于Recycleview返回多个item布局

来源:互联网 发布:专业校色软件 编辑:程序博客网 时间:2024/06/01 12:12

1.首先,在recycleviewAdapter的onCreateViewHolder传递的参数中有一个int viewType.使用该参数,可以对加载的item布局进行控制;

if(viewType==1){

return viewHolder1;

}else{

return viewHolder2;

}

2.对viewType的控制,重写adapter的getItemViewType方法,在这个方法中对list.get(position)的数据进行判断;返回不同的int类型的Type

    @Override    public int getItemViewType(int position) {        if (mList.get(position).isAudio()) {            return 1;        } else {            return 0;        }    }
3.对viewHolder的处理,几套不同的布局,几套viewHolder。这些viewHolder在onCreateViewHolder方法中根据数据的不同返回不同的viewHolder

4.onBindViewHolder中。

该方法传入了Recycleview.ViewHolder holder和position,因为我们在onCreateViewHolder中已经返回了不同的viewHolder;在这里根据viewholder进行赋值时,可以根据position像onCreateViewHolder一样通过对数据的判断来强转成对应的viewHolder;也可以使用instance of方法对viewHolder的实例类型进行判断,然后进行强转。

 if (holder instanceof MyViewholder) {            MyViewholder myViewholder = (MyViewholder) holder;