Android开发笔记 - RecyclerView

概述

RecyclerView是support:recyclerview-v7中提供的滚动控件,想要使用该控件,需要进行如下工作:

  1. 引入依赖库
  2. 在布局文件中加入RecyclerView标签
  3. 创建单项布局文件
  4. 创建适配器类
  5. 在活动中为Recyclerview设置布局管理器(LayoutManager)和适配器

虽谈不上繁杂,但对于记性不好的我来说也是很难完全记住,遂写此笔记。

参考文章

关于RecyclerView你知道的不知道的都在这了(上)

自从用了RecyclerView,腰再也不痛了,手也不酸了

RecyclerView使用全解析

Android RecyclerView 使用完全解析 体验艺术般的控件

Android 控件 RecyclerView

一、引入依赖库

implementation 'com.android.support:recyclerview-v7:27.0.2'

二、在布局文件中添加标签

<android.support.v7.widget.RecyclerView
            android:id="@+id/rv_mycreation"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

三、创建单项布局文件

该布局文件是滚动控件中每一个条目的布局,每个条目的值将在适配器的ViewHolder子类中设置

item_base_use.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="80dp"
    android:background="#ddebd774"
    android:orientation="vertical"
    android:layout_marginBottom="10dp">

    <TextView
        android:id="@+id/item_tx"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

</LinearLayout>

四、创建适配器类


public class MyRecyclerViewAdapterextends RecyclerView.Adapter<MyAdapter.ViewHolder> {
    private List<String> list;
    
    public MyAdapter(List<String> list) {
        this.list = list;
    }
 
    @Override
    public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        // 绑定item布局
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_base_use, parent, false);
        MyAdapter.ViewHolder viewHolder = new MyAdapter.ViewHolder(view);
        // 可在此为每个item设置事件监听
        return viewHolder;
    }
 
    @Override
    public void onBindViewHolder(MyAdapter.ViewHolder holder, int position) {
        // 设置控件的值
        String string = list.get(position);
        holder.mText.setText(string);
    }
 
    @Override
    public int getItemCount() {
        // 返回list的长度
        return list.size();
    }
 
    class ViewHolder extends RecyclerView.ViewHolder {
        // 控件对象,对应item中的控件
        TextView mText;

        ViewHolder(View itemView) {
            super(itemView);
            // 绑定控件
            mText = itemView.findViewById(R.id.item_tx);
        }
    }
}

五、在活动中为Recyclerview设置布局管理器(LayoutManager)和适配器

//通过findViewById拿到RecyclerView实例
mRecyclerView = findViewById(R.id.recyclerView);
//设置RecyclerView管理器
mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
//初始化适配器
mAdapter = new MyRecyclerViewAdapter(list); 
//设置添加或删除item时的动画,这里使用默认动画
mRecyclerView.setItemAnimator(new DefaultItemAnimator());
//设置适配器
mRecyclerView.setAdapter(mAdapter);

猜你喜欢

转载自blog.csdn.net/qq_39821316/article/details/83624576