📌  相关文章
📜  androidx recyclerview 依赖 - Java (1)

📅  最后修改于: 2023-12-03 14:39:11.061000             🧑  作者: Mango

AndroidX RecyclerView 依赖 - Java

RecyclerView 是 Android 平台上的一个强大的列表控件。它支持灵活而高效地展示大量数据,并提供交互功能来允许用户与列表交互。它也是 AndroidX 库的一部分,它取代了旧版 Android Support Library 中的 RecyclerView。

依赖

你可以通过 Gradle 来添加 RecyclerView 的 AndroidX 依赖:

dependencies {
    implementation 'androidx.recyclerview:recyclerview:1.2.1'
}

请确保在你的项目的 build.gradle 文件中添加了 Google 仓库:

allprojects {
    repositories {
        google()
        // ...
    }
}
使用

在你的布局文件中添加一个 RecyclerView:

<androidx.recyclerview.widget.RecyclerView
    android:id="@+id/recycler_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

在你的 Java 代码中,你需要以下步骤来初始化 RecyclerView:

  1. 实例化 RecyclerView;
  2. 设置一个 LayoutManager,LayoutManager 决定了列表的展示方式;
  3. 设置一个 Adapter,Adapter 决定了列表的内容和展示方式;
// 实例化 RecyclerView
RecyclerView recyclerView = findViewById(R.id.recycler_view);

// 设置 LayoutManager
recyclerView.setLayoutManager(new LinearLayoutManager(this));

// 设置 Adapter
recyclerView.setAdapter(adapter);

你需要实现一个 RecyclerView.Adapter 的子类来提供列表的内容和展示方式。基本的 Adapter 实现如下:

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {

    private List<String> mData; // 声明一个数据集合

    // 提供一个合适的构造方法
    public MyAdapter(List<String> data) {
        mData = data;
    }

    // 创建 ViewHolder
    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item, parent, false);
        return new ViewHolder(view);
    }

    // 绑定 ViewHolder
    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        holder.mTextView.setText(mData.get(position));
    }

    // 返回列表项数量
    @Override
    public int getItemCount() {
        return mData.size();
    }

    // ViewHolder 内部类
    public static class ViewHolder extends RecyclerView.ViewHolder {
        public TextView mTextView;

        public ViewHolder(View view) {
            super(view);
            mTextView = view.findViewById(R.id.text_view);
        }
    }
}

使用 RecyclerView 是相对简单的。但是,你应该花费一些时间在 LayoutManager 和 Adapter 上来得到满意的结果。