Recyclerview自定义点击事件(以及Fresco中SimpleDraweeView的使用)

来源:互联网 发布:网络搞笑日语中文谐音 编辑:程序博客网 时间:2024/05/21 21:47

依赖:

 

   compile 'com.android.support:recyclerview-v7:26.0.0-alpha1'
 
在Activity中设置Recyclerview的布局管理器:

    

     mRlv.setLayoutManager(new LinearLayoutManager(this));        leftAdapter = new LeftAdapter(data, this);        mRlv.setAdapter(leftAdapter);        leftAdapter.setOnItemClickLisenter(new LeftAdapter.OnItemClickLisenter() {            @Override            public void onitemClick(int a) {                 leftPersent.getRight("getProductCatagory",a);

Recyclerview的适配器

 

public class RightRLVAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>{    private  List<RightBean.DataBean.ListBean> list;    private Context context;    private String s;    public RightRLVAdapter( List<RightBean.DataBean.ListBean> list, Context context) {        this.list = list;        this.context = context;    }    //创建新View,被LayoutManager所调用      @Override    public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {        View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.rightrvlitem,viewGroup,false);        ViewHolder vh = new ViewHolder(view);        return vh;    }    @Override    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {        RightBean.DataBean.ListBean listBean = list.get(position);        ViewHolder vh= (ViewHolder) holder;        String icon = listBean.getIcon();        Uri uri=Uri.parse(icon);        vh.mTextView.setText(listBean.getName());        vh.sdv.setImageURI(uri);    }    //获取数据的数量      @Override    public int getItemCount() {        return list.size();    }    //自定义的ViewHolder,持有每个Item的的所有界面元素      public static class ViewHolder extends RecyclerView.ViewHolder {        public TextView mTextView;       SimpleDraweeView sdv;        public ViewHolder(View view){            super(view);            mTextView = (TextView) view.findViewById(R.id.tv2);            sdv=view.findViewById(R.id.sdl);        }    }    public interface OnItemClickLisenter{        void onitemClick(int a);    }    private OnItemClickLisenter onItemClickLisenter;    public void setOnItemClickLisenter(OnItemClickLisenter onItemClickLisenter){        this.onItemClickLisenter=onItemClickLisenter;    }}

rightrvlitem的布局:
<?xml version="1.0" encoding="utf-8"?><LinearLayout    android:orientation="vertical"    xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:fresco="http://schemas.android.com/apk/res-auto"    android:layout_width="wrap_content"    android:layout_height="wrap_content"><com.facebook.drawee.view.SimpleDraweeView    android:id="@+id/sdl"    android:layout_width="20dp"  android:layout_height="20dp"  fresco:fadeDuration="300"-----淡入淡出动画持续时间  fresco:actualImageScaleType="focusCrop"-----设置缩放类型  fresco:placeholderImage="@color/wait_color"-----占位图  fresco:placeholderImageScaleType="fitCenter"-----占位图缩放类型  fresco:failureImage="@drawable/error"-----加载失败图  fresco:failureImageScaleType="centerInside"-----加载失败图缩放类型  fresco:retryImage="@drawable/retrying"-----点击重新加载图  fresco:retryImageScaleType="centerCrop"-----重新加载图缩放类型  fresco:progressBarImage="@drawable/progress_bar"-----进度条图  fresco:progressBarImageScaleType="centerInside"-----进度条图缩放类型  fresco:progressBarAutoRotateInterval="1000"-----进度条图片自动旋转时间间隔  fresco:backgroundImage="@color/blue"-----背景图  fresco:overlayImage="@drawable/watermark"-----叠加图  fresco:pressedStateOverlayImage="@color/red"-----按压状态时显示的叠加图  fresco:roundAsCircle="false"-----是否为圆形  fresco:roundedCornerRadius="1dp"-----圆角半径  fresco:roundTopLeft="true"-----左上角为圆角  fresco:roundTopRight="false"-----右上角不为圆角  fresco:roundBottomLeft="false"-----左下角不为圆角  fresco:roundBottomRight="true"-----右下角为圆角  fresco:roundWithOverlayColor="@color/corner_color"-----圆形或圆角四个角漏出的颜色  fresco:roundingBorderWidth="2dp"-----圆形或圆角的边框宽度  fresco:roundingBorderColor="@color/border_color"-----圆形或圆角的边框颜色 />    <TextView        android:id="@+id/tv2"        android:layout_width="wrap_content"        android:layout_height="wrap_content" /></LinearLayout>




原创粉丝点击