一、框架引入
- 先在项目的 build.gradle(Project:XXXX) 的 repositories 添加:
allprojects {
repositories {
...
maven { url "https://jitpack.io" }
}
}
- 然后在Module的 build.gradle(Module:app) 的 dependencies 添加:
dependencies { ...... compile 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.22'
}
![]()
![]()
二.使用
2.1数据实体类:
package com.shengquanjituan.aboutdemo.bean; /** * Created by Administrator on 2018/2/5 0005. * 数据实体类型 */ public class Model { private String title; private String content; private String imgUrl; public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } public String getImgUrl() { return imgUrl; } public void setImgUrl(String imgUrl) { this.imgUrl = imgUrl; } }2.2适配器类:
package com.shengquanjituan.aboutdemo.adapter; import android.support.annotation.LayoutRes; import android.support.annotation.Nullable; import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.BaseViewHolder; import com.shengquanjituan.aboutdemo.R; import com.shengquanjituan.aboutdemo.bean.Model; import java.util.List; /** * Created by Administrator on 2018/2/5 0005. */ public class SecondAdapter extends BaseQuickAdapter<Model,BaseViewHolder> { public SecondAdapter(@LayoutRes int layoutResId, @Nullable List<Model> data) { super(layoutResId, data); } @Override protected void convert(BaseViewHolder helper, Model item) { //可链式调用赋值 helper.setText(R.id.tv_title, item.getTitle()) .setText(R.id.tv_content, item.getContent()) .setImageResource(R.id.iv_img, R.mipmap.ic_launcher); //获取当前条目position //int position = helper.getLayoutPosition(); } }item的布局:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="5dp"> <ImageView android:id="@+id/iv_img" android:layout_width="150dp" android:layout_height="80dp" android:src="@mipmap/ic_launcher"/> <TextView android:id="@+id/tv_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginLeft="10dp" android:layout_marginTop="10dp" android:layout_toRightOf="@+id/iv_img" android:text="我是标题" android:textColor="#f00" android:textSize="20sp" /> <TextView android:id="@+id/tv_content" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/tv_title" android:layout_marginLeft="10dp" android:layout_marginTop="10dp" android:layout_toRightOf="@id/iv_img" android:text="我是描述" /> </RelativeLayout>主界面的布局:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.shengquanjituan.aboutdemo.activity.SecondActivity"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" android:text="BaseRecyclerViewAdapterHelper使用"/> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <android.support.v7.widget.RecyclerView android:id="@+id/activity_second_rv" android:layout_width="match_parent" android:layout_height="wrap_content"></android.support.v7.widget.RecyclerView> </LinearLayout> </LinearLayout>代码:
package com.shengquanjituan.aboutdemo.activity; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import com.shengquanjituan.aboutdemo.R; import com.shengquanjituan.aboutdemo.adapter.SecondAdapter; import com.shengquanjituan.aboutdemo.bean.Model; import java.util.ArrayList; import java.util.List; public class SecondActivity extends AppCompatActivity { private RecyclerView recyclerView; private List<Model> datas; private SecondAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); //初始化RecyclerView recyclerView= (RecyclerView) findViewById(R.id.activity_second_rv); //模拟的数据 initData(); } private void initData() { datas=new ArrayList<>(); Model model; for(int i=0;i<15;i++){ model=new Model(); model.setTitle("我是第"+i+"条内容"); model.setContent("第"+i+"条内容"); datas.add(model); } initAdapter(); } private void initAdapter() { //创建布局管理 LinearLayoutManager layoutManager=new LinearLayoutManager(this); recyclerView.setLayoutManager(layoutManager); //创建适配器 adapter=new SecondAdapter(R.layout.item_second_rv,datas); //给RecyclerView设置适配器 recyclerView.setAdapter(adapter); } }