//添加依赖
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; } } activityactivity布局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) { } }); } }
<?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>