Recyclerview实现多条目

//添加依赖


compile 'com.jcodecraeer:xrecyclerview:1.3.2'


适配器


package com.example.huoxuebin.login1512s.adapter;

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

import com.bumptech.glide.Glide;
import com.example.huoxuebin.login1512s.Bean.DeatilsBean;
import com.example.huoxuebin.login1512s.Holder.Holder;
import com.example.huoxuebin.login1512s.R;
import com.example.huoxuebin.login1512s.jiekou.OnItemClickListener;
import com.facebook.drawee.generic.RoundingParams;
import com.facebook.drawee.view.SimpleDraweeView;

import java.util.List;

/**
 * Created by huoxuebin on 2018/5/8.
 */

public class RecyAdapter extends RecyclerView.Adapter {



    List<DeatilsBean.DataBean> data;
    Context context;
    private OnItemClickListener onItemCLickenter;

    public RecyAdapter(List<DeatilsBean.DataBean> data, Context context) {
        this.data = data;
        this.context = context;
    }

    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = null;
        RecyclerView.ViewHolder holder = null;
        switch (viewType){
            case 0:
                view = View.inflate(context,R.layout.item,null);
                holder = new MyHolder(view);
                break;
            case 1:
                view = View.inflate(context,R.layout.item2,null);
                holder = new MyHolder1(view);
                break;
        }
        return holder;
    }

    @Override
    public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) {
        switch (getItemViewType(position)){
            case 0:
                final MyHolder holder1 = (MyHolder) holder;
                String images = data.get(position).getImages();
                String[] split = images.split("\\|");


                holder1.yi.setImageURI(split[0]);
      /*          RoundingParams roundingParams2 = RoundingParams.fromCornersRadius(5f);
                roundingParams2.setRoundAsCircle(true);
                holder1.yi.getHierarchy().setRoundingParams(roundingParams2);*/
                holder1.title.setText(data.get(position).getTitle());
                break;
            case 1:
                final MyHolder1 myHolder1 = (MyHolder1) holder;
                String images2 = data.get(position).getImages();
                String[] split2 = images2.split("\\|");
                myHolder1.simpleDraweeView.setImageURI(split2[0]);
               RoundingParams roundingParams = RoundingParams.fromCornersRadius(5f);
                roundingParams.setRoundAsCircle(true);
                myHolder1.simpleDraweeView.getHierarchy().setRoundingParams(roundingParams);
                myHolder1.name.setText(data.get(position).getTitle());
                break;


        }

        holder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                onItemCLickenter.onItemClick(position);
            }
        });
    }



    @Override
    public int getItemViewType(int position) {
        if(position%2 == 0){
            return 0;
        }else {
            return 1;
        }
    }
    @Override
    public int getItemCount() {
        return data== null ? 0 : data.size();
    }
    class MyHolder extends RecyclerView.ViewHolder {

        public   TextView title;
        public   SimpleDraweeView yi;

        public MyHolder(View itemView) {
            super(itemView);
            yi = itemView.findViewById(R.id.img);
            title = itemView.findViewById(R.id.title);
        }
    }
    class MyHolder1 extends RecyclerView.ViewHolder {
        TextView name;
        public   SimpleDraweeView simpleDraweeView;

        public MyHolder1(View itemView) {
            super(itemView);
            name = itemView.findViewById(R.id.title2);
            simpleDraweeView = itemView.findViewById(R.id.img2);
        }
    }

    public void setOnItemCLickenter(OnItemClickListener onItemCLickenter){
        this.onItemCLickenter=onItemCLickenter;

    }
}


activity


package com.example.huoxuebin.login1512s.view;

import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.OrientationHelper;
import android.support.v7.widget.RecyclerView;
import android.widget.Toast;

import com.example.huoxuebin.login1512s.Bean.DeatilsBean;
import com.example.huoxuebin.login1512s.R;
import com.example.huoxuebin.login1512s.adapter.RecyAdapter;
import com.example.huoxuebin.login1512s.jiekou.OnItemClickListener;
import com.example.huoxuebin.login1512s.utils.BaseObserver;
import com.example.huoxuebin.login1512s.utils.RetrofitManager;
import com.jcodecraeer.xrecyclerview.XRecyclerView;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class DeatilsActivity extends AppCompatActivity {

    private XRecyclerView recyclerView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_deatils);
        recyclerView = findViewById(R.id.recycler);

        //上拉刷新 下拉加载
        recyclerView.setLoadingListener(new XRecyclerView.LoadingListener() {
            @Override
            public void onRefresh() {
                Handler handler = new Handler();
                handler.postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        Toast.makeText(DeatilsActivity.this, "刷新完成", Toast.LENGTH_SHORT).show();
                        recyclerView.refreshComplete();
                    }
                }, 2000);
            }

            @Override
            public void onLoadMore() {

                new Handler().postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        Toast.makeText(DeatilsActivity.this, "加载完成", Toast.LENGTH_SHORT).show();
                        recyclerView.loadMoreComplete();

                    }
                }, 2000);
            }
        });



        Map<String,String> map = new HashMap<>();
        map.put("keywords","笔记本");
        map.put("source","android");
        RetrofitManager.post("product/searchProducts?", map, new BaseObserver<DeatilsBean>() {
            @Override
            public void success(DeatilsBean deatilsBean) {
                final List<DeatilsBean.DataBean> data = deatilsBean.getData();

                recyclerView.setLayoutManager(new LinearLayoutManager(DeatilsActivity.this, OrientationHelper.VERTICAL,false));
                RecyAdapter recyAdapter = new RecyAdapter(data,DeatilsActivity.this);
                recyclerView.setAdapter(recyAdapter);

                recyAdapter.setOnItemCLickenter(new OnItemClickListener() {
                    @Override
                    public void onItemClick(int position) {
                        Toast.makeText(DeatilsActivity.this, data.get(position).getTitle(), Toast.LENGTH_SHORT).show();
                    }
                });
            }

            @Override
            public void failure(int code) {

            }
        });
    }
}
 
activity布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout

    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.example.huoxuebin.login1512s.view.DeatilsActivity">


    <com.jcodecraeer.xrecyclerview.XRecyclerView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/recycler"
        ></com.jcodecraeer.xrecyclerview.XRecyclerView>
</LinearLayout>



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值