RecyclerView 多条目加载 和点击事件

原创 2018年04月16日 18:02:13
 
compile 'com.android.support:recyclerview-v7:25.1.0'
////////////////////////////////////////////////////////////

//设置一个线性布局挂历起布局管理器 //HORIZONTAL 设置水平方向 垂直方向 false true true 反转 倒着显示 false 顺序显示
 recyclerView.setLayoutManager(new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false));

//设置一个网格管理器 //Vertical 代表显示多少列 //Horizontal 代表显示多少行

recyclerView.setLayoutManager(new GridLayoutManager(this,1,GridLayoutManager.HORIZONTAL,false));

//设置分割线 recyclerView.addItemDecoration(new DividerItemDecoration(this,DividerItemDecoration.VERTICAL));

//设置适配器 MyAdapter adapter = new MyAdapter(this,recylelist); recyclerView.setAdapter(adapter);


adapter.setOnItemClickListener(new MyAdapter.OnItemClickListener() {
    @Override
    public void setOnItemClick(View view, int position) {
        Log.d("ggg","点击");
    }
    @Override
    public void setOnItemLongClick(View view, int position) {
        Log.d("ggg","长按");
    }
});

/////////////////////////////////////////////////////


此多条目 第一种是的一条 第二种是剩下所有条

public class MyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {


    private Context context;
    private List<Bean> list;
    private int Viewk_0=0;
    private int Viewk_1=1;
    private int Viewk_2=2;
    private int Viewk_3=3;
    private View view;
    private List<String> lo;


    public MyAdapter(Context context,List<Bean> list){
        this.context = context;
        this.list=list;
    }

    @Override
    public int getItemViewType(int position) {
        if(position*1==0){
            return Viewk_0;
        }else{
            return Viewk_1;
        }
    }

    /** * * @param parent * @param viewType * @return */
    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
      

      if(viewType==Viewk_0){
           view = LayoutInflater.from(context).inflate(R.layout.itembanner,parent,false);
            ViewHolderA viewHolderA = new ViewHolderA(view);
            return viewHolderA;
       }else {
           view = LayoutInflater.from(context).inflate(R.layout.item,parent,false);
            ViewHolderB viewHolderB = new ViewHolderB(view);
            return viewHolderB;
       }

    }
    /*   生命自己的一个事件回调接口*/
    public interface OnItemClickListener{

        void setOnItemClick(View view,int position);

        void setOnItemLongClick(View view,int position);
    }
    private OnItemClickListener onItemClickListener;
    public void setOnItemClickListener(OnItemClickListener onItemClickListener){


        this.onItemClickListener = onItemClickListener;

    }
    @Override
    public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) {
     if(holder  instanceof  ViewHolderA){
       
     }else if(holder  instanceof  ViewHolderB){

      
     }


        if(null != onItemClickListener) {

           /*回调点击事件*/
            holder.itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {

                    onItemClickListener.setOnItemClick(v,position);
                } });
            holder.itemView.setOnLongClickListener(new View.OnLongClickListener() {
                @Override
                public boolean onLongClick(View v) {
                    onItemClickListener.setOnItemLongClick(v,position);
                    return true;
                } });
        }

    }
    @Override public int getItemCount() {
        return 4;
    }


    class ViewHolderA extends RecyclerView.ViewHolder{

        Banner banner;


        public ViewHolderA(View itemView) {
            super(itemView);


            banner=itemView.findViewById(R.id.banner);
        }
    }

    class ViewHolderB extends RecyclerView.ViewHolder{
        TextView text;
        TextView text2;
        SimpleDraweeView simple;
        public ViewHolderB(View itemView) {
            super(itemView);
            text = itemView.findViewById(R.id.text1);
            text2 = itemView.findViewById(R.id.text2);
            simple = itemView.findViewById(R.id.simple);
        }
    }



}

10分钟搞定富文本编辑及点击事件

洲洲哥带你从新手角度介绍iOS中富文本的使用,和绑定点击事件的功能开发
  • 2017年01月15日 11:15

RecyclerView 多条目 包括点击事件

导入依赖 compile 'com.android.support:recyclerview-v7:25.3.1' //效果 ////////////////主布局文件////////////...
  • yukaihuaboke
  • yukaihuaboke
  • 2017-12-03 17:20:27
  • 261

recyclerview单击事件和多条目点击事件

一实现多条目 注意创建adapter时继承 RecyclerView.Adapter不能添加viewholder泛型 如下 RecyclerView.Adapter 如果添加泛型是无法使用多个vie...
  • halaoda
  • halaoda
  • 2017-10-26 10:17:54
  • 329

recyclerview多条目加载

adapter适配器 import android.content.Context; import android.support.v7.widget.RecyclerView; import an...
  • zhang823253467
  • zhang823253467
  • 2017-11-22 13:45:36
  • 313

RecyclerView的多条目加载,添加头布局

RecyclerView的多条目加载,添加头布局  要导入recyclerview依赖  package com.example.day1recyclerview; import a...
  • qingxuan521721
  • qingxuan521721
  • 2017-10-07 20:46:09
  • 191

Android 拦截Recyclerview的多条目点击事件

今天测试向我提出了一个需求,同时点击多个条目时,不能触发点击事件。咋一听,很简单。上代码 在item的点击事件(点击事件为item共用)里加入如上代码,那么至少要经历DELAY_TIME时长之后...
  • qq_16811177
  • qq_16811177
  • 2017-11-17 18:52:50
  • 460

RecyclerView_多条目---点击事件

public class MainActivity extends AppCompatActivity { private RecyclerView rv; private List...
  • FH_94
  • FH_94
  • 2017-10-08 13:00:13
  • 186

RecyclerView多条目加载(网络请求数据)

RecyclerView多条目加载(网络请求数据)
  • qq_39792005
  • qq_39792005
  • 2017-10-25 20:54:04
  • 438

Android中Recyclerview使用6----添加条目得到点击事件和长按事件(另一种写法,较简单)

效果图 activity中: MainActivity public class MainActivity extends Activity { // private Recyc...
  • zhaihaohao1
  • zhaihaohao1
  • 2016-07-19 14:46:49
  • 1042

RecyclerView实现加载多种条目类型,仿新闻列表多种item布局.

本技术博客来自 http://blog.csdn.net/qq_35353487 今天咱们是用RecyclerView来实现这个多种Item的加载. 其实最关键的是要复写RecyclerView的...
  • qq_35353487
  • qq_35353487
  • 2017-07-04 17:12:01
  • 6266
收藏助手
不良信息举报
您举报文章:RecyclerView 多条目加载 和点击事件
举报原因:
原因补充:

(最多只允许输入30个字)