recyclerview的使用
来源:互联网 发布:送货单软件破解 编辑:程序博客网 时间:2024/05/23 02:27
recyclerview的使用之前必须导入依赖:
compile 'com.android.support:recyclerview-v7:23.4.0'下面的适配器:可供参考:
public class myadpter1 extends RecyclerView.Adapter<myadpter1.holde>{ public Context context; public List<Nai.ResultBean.BrandsBean.ProductsBean> products; public myadpter1(Context context, List<Nai.ResultBean.BrandsBean.ProductsBean> products) { this.context = context; this.products = products; } @Override public myadpter1.holde onCreateViewHolder(ViewGroup parent, int viewType) { View inflate = LayoutInflater.from(context).inflate(R.layout.recy_girst, parent, false); holde holde=new holde(inflate); return holde; } @Override public void onBindViewHolder(myadpter1.holde holder, int position) { Glide.with(context).load(products.get(position).getPic()).into(holder.image_recygrid); holder.text_recygrid.setText(products.get(position).getName()); } @Override public int getItemCount() { return products.size(); } public class holde extends RecyclerView.ViewHolder{ private final ImageView image_recygrid; private final TextView text_recygrid; public holde(View itemView) { super(itemView); image_recygrid = (ImageView) itemView.findViewById(R.id.image_recygrid); text_recygrid = (TextView) itemView.findViewById(R.id.text_recygrid); } }}recyclerview 的多条目布局仅供参考:public class Recyviewadpter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { Context context; private List<Make.DataBean.SubjectsBean.GoodsListBean> goodsList; int type1=0; int type2=1; public itemclink itemclink; public Recyviewadpter(Context context, List<Make.DataBean.SubjectsBean.GoodsListBean> goodsList) { this.context = context; this.goodsList = goodsList; } @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { if(viewType==type1) { View inflate = View.inflate(context, R.layout.recy_spring, null); listadpter listadpter=new listadpter(inflate); return listadpter; }else if(viewType==type2){ View inflate = View.inflate(context, R.layout.recy_spring_but, null); butadter butadter=new butadter(inflate); return butadter; } return null; } @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) { if(holder.getItemViewType()==type1) { listadpter listadpter= (listadpter) holder; Glide.with(context) .load(goodsList.get(position).getGoods_img()) .into(listadpter.image_spring); listadpter.image_spring .setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(itemclink!=null) { itemclink.setOnoitemclink(v,position); } } }); listadpter.text_efficacy.setText(goodsList.get(position).getEfficacy()+"|"); listadpter.text_goods_name.setText(goodsList.get(position).getGoods_name()); listadpter.text_spring_price.setText("¥"+""+goodsList.get(position).getShop_price()+"|"); listadpter.text_spring_oldprice.setText("¥"+goodsList.get(position).getMarket_price()); } else if(holder.getItemViewType()==type2) { butadter butadter=(butadter)holder; } } @Override public int getItemCount() { return 6; } public class listadpter extends RecyclerView.ViewHolder{ private final ImageView image_spring; private final TextView text_efficacy; private final TextView text_spring_price; private final TextView text_spring_oldprice; private final TextView text_goods_name; public listadpter(View itemView) { super(itemView); image_spring = (ImageView) itemView.findViewById(R.id.image_spring); text_efficacy = (TextView) itemView.findViewById(R.id.text_efficacy); text_spring_price = (TextView) itemView.findViewById(R.id.text_spring_price); text_spring_oldprice = (TextView) itemView.findViewById(R.id.text_spring_oldprice); text_goods_name = (TextView) itemView.findViewById(R.id.text_goods_name); } } public class butadter extends RecyclerView.ViewHolder{ private final ImageView image_but; public butadter(View itemView) { super(itemView); image_but = (ImageView) itemView.findViewById(R.id.image_but); } } @Override public int getItemViewType(int position) { if(position==5) { return type2; } else{ return type1; } } //recyview的点击事件 public interface itemclink { void setOnoitemclink(View view,int position); } public void setOnitemclink(itemclink itemclink) { this.itemclink=itemclink; }}
//下面是分割线的工具类:package com.bawei.liujianrui.activity.activity;import android.content.Context;import android.content.res.TypedArray;import android.graphics.Canvas;import android.graphics.Rect;import android.graphics.drawable.Drawable;import android.support.v7.widget.LinearLayoutManager;import android.support.v7.widget.RecyclerView;import android.view.View;/** * Created by Administrator on 2017/4/24. */public class DividerItemDecoration extends RecyclerView.ItemDecoration { private static final int[] ATTRS = new int[]{ android.R.attr.listDivider }; public static final int HORIZONTAL_LIST = LinearLayoutManager.HORIZONTAL; public static final int VERTICAL_LIST = LinearLayoutManager.VERTICAL; private Drawable mDivider; private int mOrientation; public DividerItemDecoration(Context context, int orientation) { final TypedArray a = context.obtainStyledAttributes(ATTRS); mDivider = a.getDrawable(0); a.recycle(); setOrientation(orientation); } public void setOrientation(int orientation) { if (orientation != HORIZONTAL_LIST && orientation != VERTICAL_LIST) { throw new IllegalArgumentException("invalid orientation"); } mOrientation = orientation; } @Override public void onDraw(Canvas c, RecyclerView parent) { if (mOrientation == VERTICAL_LIST) { drawVertical(c, parent); } else { drawHorizontal(c, parent); } } public void drawVertical(Canvas c, RecyclerView parent) { final int left = parent.getPaddingLeft(); final int right = parent.getWidth() - parent.getPaddingRight(); final int childCount = parent.getChildCount(); for (int i = 0; i < childCount; i++) { final View child = parent.getChildAt(i); RecyclerView v = new RecyclerView(parent.getContext()); final RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child .getLayoutParams(); final int top = child.getBottom() + params.bottomMargin; final int bottom = top + mDivider.getIntrinsicHeight(); mDivider.setBounds(left, top, right, bottom); mDivider.draw(c); } } public void drawHorizontal(Canvas c, RecyclerView parent) { final int top = parent.getPaddingTop(); final int bottom = parent.getHeight() - parent.getPaddingBottom(); final int childCount = parent.getChildCount(); for (int i = 0; i < childCount; i++) { final View child = parent.getChildAt(i); final RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child .getLayoutParams(); final int left = child.getRight() + params.rightMargin; final int right = left + mDivider.getIntrinsicHeight(); mDivider.setBounds(left, top, right, bottom); mDivider.draw(c); } } @Override public void getItemOffsets(Rect outRect, int itemPosition, RecyclerView parent) { if (mOrientation == VERTICAL_LIST) { outRect.set(0, 0, 0, mDivider.getIntrinsicHeight()); } else { outRect.set(0, 0, mDivider.getIntrinsicWidth(), 0); } } }
//使用的时候:分别写两次就可以。
recy.addItemDecoration(new DividerItemDecoration(this ,DividerItemDecoration.HORIZONTAL_LIST )); recy.addItemDecoration(new DividerItemDecoration(this ,DividerItemDecoration.VERTICAL_LIST ));
0 0
- RecyclerView+RecyclerView.Adapter+RecyclerView.ViewHolder的使用
- RecyclerView的使用
- RecyclerView的使用
- RecyclerView 的使用详解
- RecyclerView的基本使用
- RecyclerView的使用
- Android -- RecyclerView的使用
- RecyclerView的使用
- CardView,RecyclerView的使用
- 关于RecyclerView的使用
- RecyclerView的使用
- RecyclerView的使用(一)
- PopupWindow + RecyclerView的使用
- RecyclerView的简单使用
- RecyclerView 的简单使用
- recyclerview的使用
- RecyclerView的使用记录
- Android RecyclerView的使用
- 认识js数组
- Java(三) 关键字
- Java enum 枚举类的编译实现
- UCB算法升职记——LinUCB算法
- 负载均衡
- recyclerview的使用
- 50分钟学会Laravel 50个小技巧
- The GitHub credentials in the macOS keychain may be invalid.
- mybatis number转date
- 使用水经注微图怎么进行CAD图坐标转换
- 考研之路-夏令营参加
- Unity Shader之混合纹理基础示例
- 选择排序法
- Android Doze模式调试