XRecyclerView多条目加载

package com.example.test_demo.adapter;

import android.content.Context;
import android.media.Image;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.text.Layout;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import com.bumptech.glide.Glide;
import com.example.test_demo.R;
import com.example.test_demo.bean.Bean;
import com.example.test_demo.utils.Api;

import java.util.List;

/**
 * Created by john on 2018/5/29.
 */

public class XrvAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>{
    private List<Bean.DataBean> list;
    private Context context;

    public XrvAdapter(List<Bean.DataBean> list, Context context) {
        this.list = list;
        this.context = context;
    }

    @Override
    public int getItemViewType(int position) {
        return position % 2 == 0 ? Api.Type_One : Api.Type_Two;
    }

    @NonNull
    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        if (viewType== Api.Type_One){
View view=LayoutInflater.from(context).inflate(R.layout.item_one,parent,false);
ViewHoldr_ONE viewHoldr_one=new ViewHoldr_ONE(view);
return  viewHoldr_one;
        }else{
        View view=LayoutInflater.from(context).inflate(R.layout.item_two,parent,false);
        ViewHolder_TWO viewHolder_two=new ViewHolder_TWO(view);
        return  viewHolder_two;
        }
    }

    @Override
    public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
        Bean.DataBean dataBean = list.get(position);
        if (holder instanceof ViewHoldr_ONE){
            ((ViewHoldr_ONE) holder).tv.setText(dataBean.getTopic());
            if (dataBean.getMiniimg()!=null&&dataBean.getMiniimg().size()>0){
                if (dataBean.getMiniimg().size()==1){
                    Glide.with(context).load(dataBean.getMiniimg().get(0).getSrc()).into(((ViewHoldr_ONE) holder).iv_one);
                    Glide.with(context).load(dataBean.getMiniimg().get(0).getSrc()).into(((ViewHoldr_ONE) holder).iv_two);
                    Glide.with(context).load(dataBean.getMiniimg().get(0).getSrc()).into(((ViewHoldr_ONE) holder).iv_three);

                }
                else if (dataBean.getMiniimg().size()==2){
                    Glide.with(context).load(dataBean.getMiniimg().get(0).getSrc()).into(((ViewHoldr_ONE) holder).iv_one);
                    Glide.with(context).load(dataBean.getMiniimg().get(1).getSrc()).into(((ViewHoldr_ONE) holder).iv_two);
                    Glide.with(context).load(dataBean.getMiniimg().get(1).getSrc()).into(((ViewHoldr_ONE) holder).iv_three);

                }
                else{
                    Glide.with(context).load(dataBean.getMiniimg().get(0).getSrc()).into(((ViewHoldr_ONE) holder).iv_one);
                    Glide.with(context).load(dataBean.getMiniimg().get(1).getSrc()).into(((ViewHoldr_ONE) holder).iv_two);
                    Glide.with(context).load(dataBean.getMiniimg().get(2).getSrc()).into(((ViewHoldr_ONE) holder).iv_three);

                }
            }
        }else if(holder instanceof ViewHolder_TWO){
            ((ViewHolder_TWO) holder).tv_one.setText(dataBean.getBrief());
            ((ViewHolder_TWO) holder).tv_two.setText(dataBean.getDate());

            Glide.with(context).load(dataBean.getMiniimg02().get(0).getSrc()).into(((ViewHolder_TWO) holder).iv);
        }
    }

    @Override
    public int getItemCount() {
        return list.size();
    }

    class ViewHoldr_ONE extends RecyclerView.ViewHolder{

        private final TextView tv;
        private final ImageView iv_one,iv_two,iv_three;

        public ViewHoldr_ONE(View itemView) {
            super(itemView);
            tv = itemView.findViewById(R.id.tv);
            iv_one = itemView.findViewById(R.id.iv_one);
            iv_three=itemView.findViewById(R.id.iv_three);
            iv_two=itemView.findViewById(R.id.iv_two);
        }
    }
    class ViewHolder_TWO extends RecyclerView.ViewHolder{

        private final ImageView iv;
        private final TextView tv_one,tv_two;
        public ViewHolder_TWO(View itemView) {
            super(itemView);
            iv = itemView.findViewById(R.id.iv_twoitem);
            tv_one=itemView.findViewById(R.id.tv_one);
            tv_two=itemView.findViewById(R.id.tv_two);
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值