关于Recycleview返回多个item布局

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;



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值