安卓RecyclerView和Adapter

RecyclerView 是 Android 开发中一个非常重要的组件,用于在移动应用中实现滚动列表。它是一个更高效的列表视图,可以用来展示大量数据。Adapter 则用于将数据与 RecyclerView 的视图进行绑定,以在列表中展示数据。

在开始之前,需要在项目的 build.gradle 文件中添加 RecyclerView 的依赖项:

dependencies {
    //androidx以下
    implementation 'com.android.support:recyclerview-v7:28.0.0'
    //或者androidx以上
    implementation 'androidx.recyclerview:recyclerview:1.2.1'
}

以下是如何创建一个简单的 RecyclerView 和自定义 Adapter 的基本步骤:

  1. 在布局文件中添加 RecyclerView
<android.support.v7.widget.RecyclerView
    android:id="@+id/recycler_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:scrollbars="vertical" />
  1. 创建一个布局文件,表示列表中的单个项目:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:padding="8dp">

    <TextView
        android:id="@+id/item_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Sample Text" />
</LinearLayout>
  1. 创建一个自定义 Adapter 类,继承自 RecyclerView.Adapter 并实现相应的方法。这个类将负责将数据与列表项进行绑定:
public class CustomAdapter extends RecyclerView.Adapter<CustomAdapter.ViewHolder> {

    private List<String> mData;
    private LayoutInflater mInflater;

    public CustomAdapter(Context context, List<String> data) {
        this.mInflater = LayoutInflater.from(context);
        this.mData = data;
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = mInflater.inflate(R.layout.list_item, parent, false);
        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        String item = mData.get(position);
        holder.itemText.setText(item);
    }

    @Override
    public int getItemCount() {
        return mData.size();
    }

    public class ViewHolder extends RecyclerView.ViewHolder {
        TextView itemText;

        ViewHolder(View itemView) {
            super(itemView);
            itemText = itemView.findViewById(R.id.item_text);
        }
    }
}
  1. 在活动或片段中初始化 RecyclerViewAdapter,并将它们关联起来:
public class MainActivity extends AppCompatActivity {

    private RecyclerView mRecyclerView;
    private CustomAdapter mAdapter;
    private List<String> mData;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 初始化数据
        mData = new ArrayList<>();
        mData.add("Item 1");
        mData.add("Item 2");
        mData.add("Item 3");
        // ... 更多数据

        mRecyclerView = findViewById(R.id.recycler_view);
        mAdapter = new CustomAdapter(this, mData);

        // 设置布局管理器
        LinearLayoutManager layoutManager = new LinearLayoutManager(this);
        layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
        mRecyclerView.setLayoutManager(layoutManager );
        mRecyclerView.setAdapter(mAdapter);
    }
}

layoutManager.setOrientation(LinearLayoutManager.VERTICAL);是用来设置列表朝向的。

setItemAnimator也可以用设置额外操作
addItemDecoration增加两个条目之间的隔开样式

这样,就成功地创建了一个简单的 RecyclerView 和自定义的 Adapter。

猜你喜欢

转载自blog.csdn.net/mozushixin_1/article/details/129732575