原型模式-下拉刷新的全局设置
本文出自Zone的博客,如需转载请标明出处,尊重原创谢谢 博客地址:https://luhaoaimama1.github.io/2017/04/04/Refresh/
目的
全局替换刷新头部
头部可拔插
:需要应用策略模式(组合与接口的方式set get); 全局替换
:就是原型模式
设置一个全局头部,那么每次使用的下拉刷新 都是全局头部的深拷贝对象。当然可以随意生成想要拷贝的特性;
范例
头部接口
public interface IHeaderView {
中间省略.....
/**
* 全局更换头的配置
* 主要是为了复制头部对象,复制想要复制的属性
* 注意:返回null时候,默认就是新浪头了
*/
IHeaderView clone_();
}
全局设置
WaveHead waveHead=new WaveHead();
waveHead.setResourceId(R.drawable.aaaaaaaaaaaab);
Config.build()
.setHeader(waveHead)
.setFooter(new MeterialFooter())
.setResistance(new Damping2Head8per())
.writeLog(true)
.perform();
实践项目:
https://github.com/luhaoaimama1/ZRefreshLayout
欢迎Star 自恋的宣传一下 (*>∀<)ノ))★
特点与功能实现
- [x] 支持添加下拉刷新与上拉加载
- [x] 支持所有的View:ImageView,FrameLayout,ListView, GridView, ScrollView, WebView...
- [x] 全局配置(头部配置都在这里,所以没有xml属性~),与独立更改
- [x] 自动刷新 延时刷新(如果刷新完毕有动画的话 需要用到延时刷新 ,延时demo)
- [x] 头部是否固定
- [x] 刷新出发位置
- [x] 下拉位置映射,既resistance阻力
- [x] 因为是继承FrameLayout,可以添加多个child。(我没有控制必须一个,感觉更灵活吧)