android RecyclerView学习笔记

本文详细介绍了RecyclerView的基本原理及其在Android开发中的应用。重点讲述了RecyclerView的工作机制、ViewHolder模式以及Adapter的实现细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近刚学了RecyclerView,就来总结下。

RecyclerView的任务仅仅只是回收和定位。要想其显示数据还需要另外俩个类:Adpter子类以及ViewHolder子类。

ViewHolder只做一件事:容纳View视图。RecyclerView自身并不创建视图,它创建的是ViewHolder,而ViewHolder引用着一个个ItemView。
典型的ViewHolder子类写法:

private class MyHolder extends RecyclerView.ViewHolder{
        private TextView title;
        public MyHolder(View itemView){
        super(itemView);
        title=(TextView)itemView.findViewById(R.id.list_item_title);

}

RecyclerView.Adapter有三个抽象方法,使用时需覆盖:
① int getItemCount()
该方法返回适配器持有集合中的数据总数,比如说传给Adapter的List列表中的item总数。

② void onBindViewHolder (VH holder,int position)
该方法是一个回调方法,RecyclerView通常回调该方法来显示数据。position参数可以指定当前的数据位置。

③ VH onCreateViewHolder(ViewGroup parent, int viewType)
该方法通常用来调用VH来装载一个RecyclerView中的Item。

下面是一个例子:

   private class NoteBookAdapter extends RecyclerView.Adapter<MyHolder>{

    private NoteBookItem mBookItem;

    public  NoteBookAdapter(List<NoteBookItem> list){
        mNoteBookList=list;
    }

    @Override
    public MyHolder onCreateViewHolder(ViewGroup parent,int type){      //创建ViewHolder容纳View视图
        View v=LayoutInflater.from(getActivity()).inflate(R.layout.note_book_item,parent,false);
        return new MyHolder(v);
    }

    @Override
    public void onBindViewHolder(MyHolder holder, int position){        //这里通常用来绑定数据至模型层
        mBookItem=mNoteBookList.get(position);
        holder.bindItem(mBookItem);             //绑定数据到RecyclerView中的每一个Item
    }

    @Override
    public int getItemCount(){          //这里用来返回List列表中的数目
        return mNoteBookList.size();

    }


}

最后再给RecyclerView添加适配器以及设置LayoutManager(LayoutManager还有许多第三方库实现版本,这里使用LinearLayout)如下:

List<NoteBookItem> bookItems=new ArrayList<>();
mRecyclerView.setAdpter(new NoteBookAdapter(new NoteBookAdapter(bookItems)));
mRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity));

还有最后别忘了添加RecyclerView的支持库。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值