Android RecyclerView 展示数据列表

更新日期: 2021-02-15 阅读次数: 2993 字数: 261 分类: Android

RecyclerView 的用途

recycle,回收,使再循环的意思。

用于展示列表数据,通常量很大。如名字所示,RecyclerView 可以循环使用已创建的 view,以提升性能。

RecyclerView 的添加步骤

  • layout XML 中添加 RecyclerView
  • layout XML 中设置 LayoutManager。用于设置子项的排列布局方式,例如:LinearLayoutManager,GridLayoutManager,StaggeredGridLayoutManager。
  • Adapter 中实现 RecyclerView.ViewHolder。view holder 代表列表中一个子项的 view 的 wrapper。(RecyclerView.Adapter 中进行设置)
  • Adapter 中实现 RecyclerView.Adapter。Adapter 负责:创建 ViewHolder;并提供数据。
  • Adapter 中实现 DiffUtil.ItemCallback。用于比对是否是同一个子项,或是内容是否相同。
  • Activity/Fragment 中通过监听 ViewModel 的数据,调用 adapter.submitList 将数据传递给 adapter。

Adapter 的实现

根据所继承的类的不同,实现略有不同(推荐使用 androidx.recyclerview.widget.ListAdapter)。但基本逻辑是一致的。需 override 的函数:

  • onCreateViewHolder:返回一个 RecyclerView.ViewHolder 对象。需实现一个内部类自定义的 ViewHolder 类,关联列表子项的 layout。
  • onBindViewHolder:提供数据,getItem(position) 获取当前对应数据,然后绑定到对应的 view holder 上。
  • getItemCount: 如果是继承自 androidx.recyclerview.widget.ListAdapter,则可以不必 override 该函数。

Todo

  • VIM Snippets
  • 写死数据进行测试。即,先不引入 ViewModel 简化测试。

参考

  • https://developer.android.com/guide/topics/ui/layout/recyclerview
  • https://developer.android.com/codelabs/android-room-with-a-view-kotlin#11
  • https://github.com/android/sunflower

关于作者 🌱

我是来自山东烟台的一名开发者,有敢兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式