前言
下拉刷新和上滑加载更多,是一种比较常用的列表数据交互方式。
android提供了原生的下拉刷新容器 SwipeRefreshLayout,可惜样式不能定制。
于是打算自己实现一个专用的。但是下拉刷新和上滑,非常考验对android布局与父子触摸机制的功底,因此参考gitHub上的一个热门的下拉刷新项目
之所以选择他是因为它一个类就完成了所有View的适配,非常的精简强力。
需求
咱对下拉刷新、上滑加载更多的控件,需求如下:
1:下拉刷新,拖动到一定距离,提示文字变成 放手刷新
2:刷新完成之后,文字变成 刷新完成,短暂停留300毫秒提示用户
3:随后线性加速合起控件。
4:能适配日间、夜间模式不同的字体配色。
最后的样子是这样的。
简要思路
1:下拉刷新参考
https://github.com/Yalantis/Phoenix
咱对其代码进行精简,只保留自己需要的。
2:上滑加载更多
咱在列表控件的Adapter代码里实现的,具体步骤如下:
下滑到最后一项时,在启动异步请求数据前,往数组里插入一个占位数据,由Adapter负责将其渲染成载入样式
请求数据完成后,删除数组最后一个占位数据,将本次请求数据插入到数组中。
综合用下来感觉非常的不错,毕竟是咱自己定制的,用着也顺手,完整代码参考http://git.oschina.net/yso/CNBlogs/tree/master