BaseRecyclerViewAdapterHelper的使用

一.配置

在 build.gradle 的 repositories 添加:

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

然后增加dependencies

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

二.使用

1,单类型BaseQuickAdapter使用

//这里的泛型:是你请求网络返回的Bean对象,这里模拟,就用String
public 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

传送门

BaseRecyclerViewAdapterHelper(以下简称BRVAH)是一个强大的 RecyclerView 适配器库。它可以方便地实现 RecyclerView 的各种功能,如多类型布局、加载更多、空布局、拖拽移动、侧滑删除等。而 QuickAdapterHelper 则是 BRVAH 的简化版,只保留了最基础的功能,使用起来更加简单。 下面是 QuickAdapterHelper使用方法: 1. 在 app 的 build.gradle 文件中添加以下依赖: ``` dependencies { implementation 'com.android.support:recyclerview-v7:28.0.0' implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.47' } ``` 2. 创建一个 Adapter 类,并继承 QuickAdapterHelper: ``` public class MyAdapter extends QuickAdapterHelper<String> { public MyAdapter(List<String> data) { super(R.layout.item_layout, data); } @Override protected void convert(QuickViewHolder holder, String item) { // 设置 item 布局中的控件值 holder.setText(R.id.tv_name, item); } } ``` 上面的代码中,R.layout.item_layout 是 item 的布局文件,data 是数据源。在 convert() 方法中,我们可以通过 QuickViewHolder 来设置 item 布局中的控件值。 3. 在 Activity 或 Fragment 中使用 Adapter: ``` RecyclerView recyclerView = findViewById(R.id.recycler_view); recyclerView.setLayoutManager(new LinearLayoutManager(this)); MyAdapter adapter = new MyAdapter(data); recyclerView.setAdapter(adapter); ``` 上面的代码中,data 是数据源,通过 MyAdapter 的构造函数传入。最后将 adapter 设置到 RecyclerView 中即可。 这样就完成了一个简单的 RecyclerView 列表展示。如果需要实现更多的功能,可以参考 BRVAH 的文档进行扩展。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值