BaseRecyclerViewAdapterHelper的使用

来源:互联网 发布:windows凭据 编辑:程序博客网 时间:2024/06/05 00:11

一.配置

在 build.gradle 的 repositories 添加:

allprojects {    repositories {        maven { url "https://jitpack.io" }    }}

然后增加dependencies

dependencies {    compile 'com.github.CymChad:BaseRecyclerViewAdapterHelper:v1.9.7'}

二.使用

1,单类型BaseQuickAdapter使用

//这里的泛型:是你请求网络返回的Bean对象,这里模拟,就用Stringpublic class TreasureFragmentAdapter extends BaseQuickAdapter<String>  {   //构造方法, 第一个参数是你条目的布局Id,第二个是列表的数据集合    public TreasureFragmentAdapter(int layoutResId, List<String> data) {        super(layoutResId, data);    }    @Override//参数一:原生的Holder ,参数二: 对应位置的数据    protected void convert(BaseViewHolder baseViewHolder, String s) {    //找到控件对象,进行强转,然后设置数据        ((TextView) baseViewHolder.getView(R.id.tv)).setText(s);        //这里是条目里边的子控件的点击事件        baseViewHolder.setOnClickListener(R.id.tv,new OnItemChildClickListener()).setOnClickListener(R.id.tv,new OnItemChildClickListener());    }

页面代码:
找控件

   this.recyclerView = (RecyclerView) view.findViewById(R.id.recyclerView);
  //模拟数据        for (int i = 0; i < 100; i++) {            arr.add(i + "");        }       //设置加载方式         recyclerView.setLayoutManager(new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false));        //创建Adapter        adapter = new TreasureFragmentAdapter(R.layout.image, arr);        //设置Adapter        recyclerView.setAdapter(adapter);

整个条目的点击事件

 //条目点击事件        adapter.setOnRecyclerViewItemClickListener(new BaseQuickAdapter.OnRecyclerViewItemClickListener() {            @Override            public void onItemClick(View view, int i) {        //adapter.getData().get(i)表示获取对应位置的数据                   showToast(adapter.getData().get(i)+"条目被点击");            }        });
//条目里边控件的点击事件adapter.setOnRecyclerViewItemChildClickListener(new BaseQuickAdapter.OnRecyclerViewItemChildClickListener() {            @Override            public void onItemChildClick(BaseQuickAdapter baseQuickAdapter, View view, int i) {                showToast(adapter.getData().get(i)+"条目里边控件被点击");            }        });

注意: 条目点击和条目里边的控件点击不会有冲突

长按事件雷同上边的点击事件

添加动画

        adapter.openLoadAnimation();
**系统默认的5种动画如下:**public static final int ALPHAIN = 1;     public static final int SCALEIN = 2;     public static final int SLIDEIN_BOTTOM = 3;     public static final int SLIDEIN_LEFT = 4;     public static final int SLIDEIN_RIGHT = 5;  

添加头和脚View

adapter.addHeaderView(View.inflate(getActivity(),R.layout.image,null));        adapter.addHeaderView(View.inflate(getActivity(),R.layout.image,null));        adapter.addHeaderView(View.inflate(getActivity(),R.layout.image,null));        adapter.addHeaderView(View.inflate(getActivity(),R.layout.image,null));        adapter.addFooterView(View.inflate(getActivity(),R.layout.image,null));        adapter.addFooterView(View.inflate(getActivity(),R.layout.image,null));        adapter.addFooterView(View.inflate(getActivity(),R.layout.image,null));

**注意:支持添加多个头和脚,位置会根据你天机头的多少进行调整,你什么都不需要做
且头部的处理也是在对应的页面上进行使用**

下拉刷新和上拉加载更多
上拉刷新可以使用Spring进行动画的自定义,效果更炫

加载更多可以使用Adapter用户体验更好

加载更多代码:

   //打开加载更多开关        adapter.openLoadMore(arr.size(),true);
//加载更多回调adapter.setOnLoadMoreListener(new BaseQuickAdapter.RequestLoadMoreListener() {            @Override            public void onLoadMoreRequested() {        //不用post设置加载数据会报错,至于为什么会报错,还是不确定,这里边全是主线程                   recyclerView.post(new Runnable() {                    @Override                    public void run() {                        adapter.notifyDataChangedAfterLoadMore(arr2,false);                    }                });            }        });

侧滑的Adapter

传送门

原创粉丝点击