多布局

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;


import java.util.ArrayList;


/**   rv.setLayoutManager(new LinearLayoutManager(this));
 GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 4);
 gridLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
 //返回position对应的条目所占的size
 @Override
 public int getSpanSize(int position) {
 if (position < 5)
 //这里返回4,指的是当position满足上面条件时,一个条目占得size是4
 //也就是说这个条目占一行,因为上面设置的一行的size是4
 return 4;
 else if (4<= position && position < 9)
 //这里返回2,指的是当position满足上面条件时,一个条目占得size是2
 // 也就是说这个条目占半行,因为上面设置的一行的size是4
 return 2;
 else
 //这里返回1,指的是当position满足上面条件时,一个条目占得size是1
 // 也就是说这个条目占1/4行,因为上面设置的一行的size是4
 return 1;
 }
 });
 //用来添加分割线
 //mRecy.addItemDecoration();
 //设置管理
 rv.setLayoutManager(gridLayoutManager);
 *
 */


public class MyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>{
    Context context;
    ArrayList<Use> list;
    public MyAdapter(Context context , ArrayList<Use> list) {
        this.context=context;
        this.list=list;
    }






    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {


        View view = null;
        RecyclerView.ViewHolder viewHolder = null;
        //根据viewType生成viewHolder
        switch (viewType) {
            case 0:
                view = LayoutInflater.from(parent.getContext()).inflate(R.layout.a, null);
                viewHolder = new Holder1(view);
                break;
            case 1:
                view = LayoutInflater.from(parent.getContext()).inflate(R.layout.b, null);
                viewHolder = new Holder2(view);
                break;
            case 2:
                view = LayoutInflater.from(parent.getContext()).inflate(R.layout.c, null);
                viewHolder = new Holder3(view);
                break;
        }
        return viewHolder;
    }


    @Override
    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
        int itemViewType = getItemViewType(position);
        switch (itemViewType) {
            case 0:
                Holder1 vh1 = (Holder1) holder;
                    vh1.te1.setText(list.get(position).name);
                vh1.te2.setText(list.get(position).age);
                vh1.img1.setBackgroundResource(list.get(position).img);
                break;
            case 1:
                Holder2 vh2 = (Holder2) holder;
                vh2.te3.setText(list.get(position).name);
                vh2.te4.setText(list.get(position).age);
                break;
            case 2:
                Holder3 vh3 = (Holder3) holder;
                vh3.te5.setText(list.get(position).name);
                vh3.te6.setText(list.get(position).age);
                vh3.img3.setBackgroundResource(list.get(position).img);
                vh3.img4.setBackgroundResource(list.get(position).img);
                break;
        }
    }


    @Override
    public int getItemViewType(int position) {
        //跟据position对应的条目返回去对应的样式(Type)
//        if (TextUtils.isEmpty(mList.get(position).getThumbnail_pic_s02())
//                &&TextUtils.isEmpty(mList.get(position).getThumbnail_pic_s03())
//                ){
//            return ONE;
//        }else{
//            return TWO;
//        }
        if (position < 5) {
            return 0;
        } else if (5 <= position && position < 8) {
            return 1;
        } else return 2;
    }




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






    class Holder1 extends RecyclerView.ViewHolder  {


        TextView te1;
        ImageView img1;
        TextView te2;
        public Holder1(View itemView) {
            super(itemView);
            te1 = itemView.findViewById(R.id.te1);
            te2 = itemView.findViewById(R.id.te2);
            img1 = itemView.findViewById(R.id.img1);
        }




    }
    class Holder2 extends RecyclerView.ViewHolder  {


        TextView te3;


        TextView te4;
        public Holder2(View itemView) {
            super(itemView);
            te3 = itemView.findViewById(R.id.te3);
            te4 = itemView.findViewById(R.id.te4);
        }




    }
    class Holder3 extends RecyclerView.ViewHolder  {


        TextView te5;
        ImageView img3;
        ImageView img4;
        TextView te6;
        public Holder3(View itemView) {
            super(itemView);
            te5 = itemView.findViewById(R.id.te5);
            te6 = itemView.findViewById(R.id.te6);
            img3 = itemView.findViewById(R.id.img3);
            img4 = itemView.findViewById(R.id.img4);
        }




    }


}

猜你喜欢

转载自blog.csdn.net/weixin_42376563/article/details/80560114