使用 RecyclerView 控件实现瀑布流

RecyclerView相比于ListView, 在回收重用时更具有灵活性, 也就是低耦合, 并且提供了扩展. 加载多个视图时, 应该多用RecyclerView代替ListView.

更多: http://www.wangchenlong.org/

那么我们来看看这东西应该怎么用? 比如生成一个瀑布流的视图.

recycler-waterfall

首先我们从一个HelloWorld写起, 看看如何构建一个RecyclerView.


依赖

Gradle配置, 添加RecyclerView库的依赖.


布局

布局文件


代码

LayoutManager: 管理RecyclerView的结构.
Adapter: 处理每个Item的显示.
ItemDecoration: 添加每个Item的装饰.
ItemAnimator: 负责添加\移除\重排序时的动画效果.

LayoutManager\Adapter是必须, ItemDecoration\ItemAnimator是可选.


LayoutManager

管理RecyclerView的布局结构.

提供了多种LayoutManager, 瀑布流使用错列网格布局.


Adapter

适配器, 处理RecyclerView的Item事务.

对于Adapter, 我们需要展开来说, 先看看类.

onCreateViewHolder创建ViewHolder.
onBindViewHolder绑定每一项数据.
getItemCount返回列表长度.

RecyclerView强制使用ViewHolder.

在onCreateViewHolder方法, 创建类; 在onBindViewHolder方法, 绑定数据.

DataModel

ItemDecoration

项的装饰, 比如ListView中的分割线, 在本例中, 左右两条粉线.

ItemDecoration, 注意parent和child的使用方式.

本例重写了listDivider


ItemAnimator

动画效果比较复杂, 使用默认动画. 如要定制的话, 继承DefaultItemAnimator; 如设置null, 则不显示任何动画.

为了测试动画, Menu额外添加两个按钮.


最终效果

recycler-demo

RecyclerView的基本要点就是这些了.

OK, that’s all! Enjoy it!

打赏支持我写出更多好文章,谢谢!

打赏作者

打赏支持我写出更多好文章,谢谢!

1 收藏 评论

关于作者:Spike

硕士毕业, 任职于春雨移动健康, 从事移动端架构工作. 做了六年技术研发, 还会一直坚持下去. 分享一些自己的开发经验. 个人主页 · 我的文章 · 6 ·    

相关文章

可能感兴趣的话题



直接登录
跳到底部
返回顶部