Android RecyclerView

RecyclerView

RecyclerView是一种新型的列表控件,它的目标是为任何基于适配器的视图提供相似的渲染方式。RecyclerView不仅可以实现和ListView同样的效果,还优化了ListView中的各种不足。

与ListView相比,RecyclerView的优势为:

  1. 展示效果:RecyclerView控件可以通过LayoutManager类实现横向或竖向的列表效果、瀑布流效果和GridView效果,而ListView控件只能实现竖直的列表效果。
  2. 适配器:RecyclerView控件使用的是RecyclerView.Adapter适配器,该适配器强制使用ViewHolder类,使代码编写规范化,避免了初学者写的代码性能不佳。
  3. 复用效果:RecyclerView控件复用item对象的工作由该控件自己实现,而ListView控件复用item对象的工作需要开发者实现。
  4. 动画效果:RecyclerView控件可以通过setItemAnimator()方法为item添加动画效果,而ListView控件不可以通过该方法为Item添加动画效果。

RecyclerView的常用方法见表1。需要注意的是RecyclerView没有提供setOnItemClickListener()方法,RecyclerView的item单击事件往往在Adapter中实现,在Adapter中可以对整个item或者item的各个控件实现单击事件。

表1 RecyclerView的常用方法

方法名

作用

void setAdapter(Adapter adapter)

设置RecyclerView的数据适配器

void setLayoutManager(@Nullable LayoutManager layout)

设置RecyclerView的布局方法,包括LinearLayoutManager(线性布局管理器)、GridLayoutManager(网格布局管理器)、StaggeredGridLayoutManager(瀑布流布局管理器)

RecyclerView的使用步骤如下。

1)设计含RecyclerView控件的界面layout。

2)设计RecyclerView控件item的layout。

3)设计RecyclerView控件需要显示的数据类。

4)设计RecyclerView.Adapter,需要实现下面几个方法:

  1. onCreateViewHolder():主要用于创建ViewHolder实例,加载item界面的布局文件;
  2. onBindViewHolder():主要将获取的数据设置到对应的控件上;
  3. getItemCount():获取列表条目的总数;

5)设计RecyclerView中的方法。

  1. setLayoutManager():设置RecyclerView的布局方式;
  2. setAdapter():设置RecyclerView的适配器;

6)设计MainActivity。

  1. 初始化界面、数据。
  2. 设置Adapter。

RecyclerView怎么用?

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-15 07:54:03       70 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-15 07:54:03       74 阅读
  3. 在Django里面运行非项目文件

    2024-07-15 07:54:03       62 阅读
  4. Python语言-面向对象

    2024-07-15 07:54:03       72 阅读

热门阅读

  1. 在Ubuntu 14.04上安装和保护phpMyAdmin的方法

    2024-07-15 07:54:03       25 阅读
  2. [NeetCode 150] Redundant Connection

    2024-07-15 07:54:03       27 阅读
  3. PyTorch使用细节

    2024-07-15 07:54:03       24 阅读
  4. Matplotlib库学习之figure.add_subplot函数

    2024-07-15 07:54:03       25 阅读
  5. uniapp 初始学习1

    2024-07-15 07:54:03       32 阅读
  6. 在 YAML 中的变量(使用 &和 * 定义及引用变量)

    2024-07-15 07:54:03       25 阅读
  7. Julia 交互式命令

    2024-07-15 07:54:03       26 阅读
  8. uniapp颜色选择器

    2024-07-15 07:54:03       22 阅读
  9. 什么是DDoS攻击

    2024-07-15 07:54:03       25 阅读
  10. [NeetCode 150] Word Ladder

    2024-07-15 07:54:03       24 阅读