RecyclerView使用指南(一)—— 基本使用

栏目: Android · 发布时间: 6年前

内容简介:声明:原创作品,转载请注明出处:RecyclerView是用于列表展示的控件,对于小白来说,是比较难使用的,下面,我将对它的最基本使用方式进行讲解。这一篇,我讲解了RecyclerView的基本使用方式,下一篇,我会讲解如何在RecyclerView中使用不同的布局。

声明:原创作品,转载请注明出处: www.jianshu.com/p/5525310c0…

RecyclerView是用于列表展示的控件,对于小白来说,是比较难使用的,下面,我将对它的最基本使用方式进行讲解。

  • 步骤:
  1. 添加Recyclerview依赖。
  2. 在xml文件中添加Recyclerview控件。
  3. 创建Recyclerview的Adapter(适配器)。
  4. 将适配器设置给Recyclerview。

一、添加Recyclerview依赖

  • 在模块的build.gradle中的dependencies{}中添加如下代码:
implementation 'com.android.support:recyclerview-v7:28.0.0'
复制代码

二、在xml文件中添加Recyclerview控件

<android.support.v7.widget.RecyclerView
        android:id="@+id/rv"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layoutManager="android.support.v7.widget.LinearLayoutManager"/>
复制代码

三、创建Recyclerview的Adapter(适配器)

  • 步骤:
  1. 创建RecyclerView.Adapter类的子类,泛型传入RecyclerView.ViewHolder类。
  2. 创建RecyclerView.ViewHolder类的子类。
  3. 在RecyclerView.ViewHolder的子类中初始化item的控件。
  4. 重写RecyclerView.Adapter类的相关方法。
package com.liuym.myapplication;

import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import java.util.List;

public class RvAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
    //数据源
    private List<Data> mList;

    public RvAdapter(List<Data> list) {
        mList = list;
    }

    /**
     * 创建ViewHolder
     *
     * @param viewGroup
     * @param i
     * @return
     */
    @NonNull
    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View item = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_rv, viewGroup, false);
        RecyclerView.ViewHolder holder = new MyViewHolder(item);
        return holder;
    }

    /**
     * 通过ViewHolder对item中的控件进行控制(如:显示数据等等)
     *
     * @param viewHolder
     * @param i
     */
    @Override
    public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int i) {
        MyViewHolder holder = (MyViewHolder) viewHolder;
        Data data = mList.get(i);
        holder.iv.setImageResource(R.drawable.ic_launcher_background);
        holder.tv.setText(data.getText());
    }

    /**
     * 返回列表长度
     *
     * @return
     */
    @Override
    public int getItemCount() {
        return mList == null ? 0 : mList.size();
    }

    /**
     * 创建ViewHolder类,用来缓存item中的子控件,避免不必要的findViewById
     */
    class MyViewHolder extends RecyclerView.ViewHolder {
        ImageView iv;
        TextView tv;

        public MyViewHolder(@NonNull View itemView) {
            super(itemView);
            iv = itemView.findViewById(R.id.iv);
            tv = itemView.findViewById(R.id.tv);
        }
    }
}
复制代码

四、将适配器设置给Recyclerview

private void initRv() {
        List<Data> list = new ArrayList<>();
        for (int i = 0; i < 10; i++) {
            String text = String.format("mockData: %1s", i);
            list.add(new Data(text));
        }
        RecyclerView recyclerView = findViewById(R.id.rv);
        RvAdapter adapter = new RvAdapter(list);
        recyclerView.setAdapter(adapter);
    }
复制代码

总结

这一篇,我讲解了RecyclerView的基本使用方式,下一篇,我会讲解如何在RecyclerView中使用不同的布局。

系列文章


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

计算机程序的构造和解释

计算机程序的构造和解释

Harold Abelson、Gerald Jay Sussman、Julie Sussman / 裘宗燕 / 机械工业出版社 / 2004-2 / 45.00元

《计算机程序的构造和解释(原书第2版)》1984年出版,成型于美国麻省理工学院(MIT)多年使用的一本教材,1996年修订为第2版。在过去的二十多年里,《计算机程序的构造和解释(原书第2版)》对于计算机科学的教育计划产生了深刻的影响。第2版中大部分重要程序设计系统都重新修改并做过测试,包括各种解释器和编译器。作者根据其后十余年的教学实践,还对其他许多细节做了相应的修改。 海报:一起来看看 《计算机程序的构造和解释》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具