📌  相关文章
📜  水平 RecyclerView android 示例 (1)

📅  最后修改于: 2023-12-03 15:40:41.014000             🧑  作者: Mango

水平 RecyclerView Android 示例

在 Android 开发中,RecyclerView 是一个常用的支持列表和网格视图的组件。RecyclerView 支持横向水平的滚动视图,也就是水平 RecyclerView。可以用于实现类似于横向滑动的图片展示、水平导航栏等功能。

下面将介绍如何在 Android 项目中使用水平 RecyclerView 组件。

步骤
  1. 添加依赖库

build.gradle 文件中,添加 RecyclerView 的依赖库:

dependencies {
    implementation 'com.android.support:recyclerview-v7:28.0.0'
}
  1. 布局文件中添加 RecyclerView 组件

在布局文件中添加 RecyclerView 组件,并设置 LayoutManager 为 LinearLayoutManager,orientation 为 HORIZONTAL:

<android.support.v7.widget.RecyclerView
    android:id="@+id/horizontal_recycler_view"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    />
  1. 定义 RecyclerView 的 Adapter

定义一个 RecyclerView 的 Adapter,继承 RecyclerView.Adapter,并实现以下方法:

  • onCreateViewHolder(ViewGroup parent, int viewType):创建 ViewHolder,根据 item 的类型创建对应的 ViewHolder。
  • onBindViewHolder(ViewHolder holder, int position):将数据与 ViewHolder 绑定,刷新 item 的内容。
  • getItemCount():返回 item 的总数。
public class HorizontalRecyclerViewAdapter extends RecyclerView.Adapter<HorizontalRecyclerViewAdapter.ViewHolder> {
    private String[] mData;

    public HorizontalRecyclerViewAdapter(String[] data) {
        mData = data;
    }

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

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        holder.mTextView.setText(mData[position]);
    }

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

    static class ViewHolder extends RecyclerView.ViewHolder {
        TextView mTextView;

        ViewHolder(View itemView) {
            super(itemView);
            mTextView = itemView.findViewById(R.id.horizontal_recycler_view_item_text_view);
        }
    }
}
  1. 定义 RecyclerView 的 Item

定义 RecyclerView 的 Item 的布局文件,这里以 horizontal_recycler_view_item.xml 为例:

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/horizontal_recycler_view_item_text_view"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:paddingStart="16dp"
    android:paddingEnd="16dp"
    android:paddingTop="8dp"
    android:paddingBottom="8dp"
    android:textSize="20sp"
    android:textColor="#333333"
    />
  1. 设置 RecyclerView 的 Adapter 和数据

在 Activity 或 Fragment 中获取 RecyclerView 组件,并设置 Adapter 和数据:

public class MainActivity extends AppCompatActivity {
    private String[] mData = new String[]{"Item1", "Item2", "Item3", "Item4", "Item5"};

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

        RecyclerView horizontalRecyclerView = findViewById(R.id.horizontal_recycler_view);
        LinearLayoutManager layoutManager = new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false);
        horizontalRecyclerView.setLayoutManager(layoutManager);

        HorizontalRecyclerViewAdapter adapter = new HorizontalRecyclerViewAdapter(mData);
        horizontalRecyclerView.setAdapter(adapter);
    }
}
结论

通过上述步骤,就可以在 Android 项目中创建一个简单的水平 RecyclerView。

可以将以上代码封装到自定义的 RecyclerView 类中,以便于复用和扩展。

注意:RecyclerView 组件是支持 RecyclerView.ItemDecoration 的,可以设置 Item 之间的分割线、边距等效果。具体使用方法可以参考官方文档。

参考资料