RecyclerView简单使用

来源:互联网 发布:淘宝买家号可以开店吗 编辑:程序博客网 时间:2024/06/16 09:03
RecyclerView首先需要导入一个依赖包注意要V7的依赖.然后在XML文件里创建出RecyclerView

<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent">
</android.support.v7.widget.RecyclerView>
回到MainActivity的onCreate方法里初始化控件
//初始化控件
recycler_view = (RecyclerView) findViewById(R.id.recycler_view);
写一个填充数据的方法,这里先用假数据,一般我们都是在网络上求情数据
private void loadListData(){
//写一个List集合,集合的泛型写你的Bean类
List<DataBean> list = new ArrayList<>();
//写个循环添加数据
for(int i = 0; i < 10; i++ ){
//把Bean类实例化出来
DataBean bean = new DataBean();
//给Bean里的值赋值
bean.icon = R.drawable.mm;//假数据,自定义的图片(一般都在网上请求数据)
bean.name = "带你飞";//假数据,自己定义(一般都在网上请求数据)
//最后把数据装到集合里
list.add(bean);
}
//创建适配器
RecyclerAdapter adapter = new RecyclerAdapter(this,list);
//设置适配器
recycler_view.setAdapter(adapter);
//创建布局管理器,布局管理器所需参数,上下文
LinearLayoutManager linearLayout = new LinearLayoutManager(this);
//通过布局管理器,可以控制条目排序顺序 true是反向显示,false是正常显示
linearLayout.setReverseLayout(true);
//设置RecyclerView显示方向是水平还是垂直
linearLayout.setOrientation(LinearLayoutManager.HORIZONTAL);
//设置布局管理器,参数 linearLayout对象
recycler_view.setLayoutManager(linearLayout);
 

}
需要一个RecyclerView适配器,注意要指定泛型,一般我们就是类名的ViewHolder继承ViewHolder(内部已经实现了复用优化机制)
public class RecyclerAdapter extends RecyclerView.Adapter <RecyclerAdapter.ListViewHolder>{
//创建构造函数
private Context context;
private List<DataBean> list;
//构造方法,一般需要接受两个参数,上下文,集合参数(包含了我们所需要的数据)
public RecyclerAdapter(Context context,List<DataBean> list){
context=context;
list = list;
}
//创建ViewHolder,并把ViewHolder返回出去
@Overridepublic ListViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { //转换一个View布局对象,决定了item的样子,1:上下文,2:加载的布局,3:一般设为空 View view =  View.inflate(context, R.layout.item_list,null);//创建一个ListViewHolder对象 ListViewHolder listViewHolder = new ListViewHolder(view);    //把ViewHolder对象传出去    return listViewHolder;}
//当ViewHolder跟数据绑定是回调@Overridepublic void onBindViewHolder(ListViewHolder holder, int position) {//从集合里拿对应item的数据对象    DataBean dataBean = datas.get(position);//给Holder里面的数据设置对象  holder.setData(dataBean);}
//根据集合长度定义item数量@Overridepublic int getItemCount() {//数据不为空,有多少条数据就加载多少条 if(datas != null && datas.size() > 0){        return  datas.size();    }    return 0;}


public class ListViewHolder extends RecyclerView.ViewHolder {
public ListViewHolder(View itemView) {    super(itemView);    //找控件初始化    miv = (ImageView) itemView.findViewById(R.id.item_iv);    mtv = (TextView) itemView.findViewById(R.id.item_tv);}
public void setData(DataBean data){
//给ImageView设置图片数据
miv.setImageResource(data.icon);
//给Text设置文本信息
mtc.setText(data.name);
}
}



原创粉丝点击